/*
 * Copyright (C) 2019 The Turms Project
 * https://github.com/turms-im/turms
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: notification/turms_notification.proto

package im.turms.server.common.access.client.dto.notification;

/**
 * Protobuf type {@code im.turms.proto.TurmsNotification}
 */
public final class TurmsNotification extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:im.turms.proto.TurmsNotification)
    TurmsNotificationOrBuilder {
private static final long serialVersionUID = 0L;
  // Use TurmsNotification.newBuilder() to construct.
  private TurmsNotification(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private TurmsNotification() {
    reason_ = "";
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(
      UnusedPrivateParameter unused) {
    return new TurmsNotification();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private TurmsNotification(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 8: {
            bitField0_ |= 0x00000001;
            requestId_ = input.readInt64();
            break;
          }
          case 16: {
            bitField0_ |= 0x00000002;
            code_ = input.readInt32();
            break;
          }
          case 26: {
            java.lang.String s = input.readStringRequireUtf8();
            bitField0_ |= 0x00000004;
            reason_ = s;
            break;
          }
          case 34: {
            im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder subBuilder = null;
            if (data_ != null) {
              subBuilder = data_.toBuilder();
            }
            data_ = input.readMessage(im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(data_);
              data_ = subBuilder.buildPartial();
            }

            break;
          }
          case 40: {
            bitField0_ |= 0x00000008;
            requesterId_ = input.readInt64();
            break;
          }
          case 48: {
            bitField0_ |= 0x00000010;
            closeStatus_ = input.readInt32();
            break;
          }
          case 58: {
            im.turms.server.common.access.client.dto.request.TurmsRequest.Builder subBuilder = null;
            if (relayedRequest_ != null) {
              subBuilder = relayedRequest_.toBuilder();
            }
            relayedRequest_ = input.readMessage(im.turms.server.common.access.client.dto.request.TurmsRequest.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(relayedRequest_);
              relayedRequest_ = subBuilder.buildPartial();
            }

            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (com.google.protobuf.UninitializedMessageException e) {
      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }
  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            im.turms.server.common.access.client.dto.notification.TurmsNotification.class, im.turms.server.common.access.client.dto.notification.TurmsNotification.Builder.class);
  }

  public interface DataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:im.turms.proto.TurmsNotification.Data)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.im.turms.proto.Int64Values ids = 1;</code>
     * @return Whether the ids field is set.
     */
    boolean hasIds();
    /**
     * <code>.im.turms.proto.Int64Values ids = 1;</code>
     * @return The ids.
     */
    im.turms.server.common.access.client.dto.model.common.Int64Values getIds();
    /**
     * <code>.im.turms.proto.Int64Values ids = 1;</code>
     */
    im.turms.server.common.access.client.dto.model.common.Int64ValuesOrBuilder getIdsOrBuilder();

    /**
     * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
     * @return Whether the idsWithVersion field is set.
     */
    boolean hasIdsWithVersion();
    /**
     * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
     * @return The idsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion getIdsWithVersion();
    /**
     * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
     */
    im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersionOrBuilder getIdsWithVersionOrBuilder();

    /**
     * <code>string url = 3;</code>
     * @return Whether the url field is set.
     */
    boolean hasUrl();
    /**
     * <code>string url = 3;</code>
     * @return The url.
     */
    java.lang.String getUrl();
    /**
     * <code>string url = 3;</code>
     * @return The bytes for url.
     */
    com.google.protobuf.ByteString
        getUrlBytes();

    /**
     * <code>.im.turms.proto.Conversations conversations = 4;</code>
     * @return Whether the conversations field is set.
     */
    boolean hasConversations();
    /**
     * <code>.im.turms.proto.Conversations conversations = 4;</code>
     * @return The conversations.
     */
    im.turms.server.common.access.client.dto.model.conversation.Conversations getConversations();
    /**
     * <code>.im.turms.proto.Conversations conversations = 4;</code>
     */
    im.turms.server.common.access.client.dto.model.conversation.ConversationsOrBuilder getConversationsOrBuilder();

    /**
     * <code>.im.turms.proto.Messages messages = 5;</code>
     * @return Whether the messages field is set.
     */
    boolean hasMessages();
    /**
     * <code>.im.turms.proto.Messages messages = 5;</code>
     * @return The messages.
     */
    im.turms.server.common.access.client.dto.model.message.Messages getMessages();
    /**
     * <code>.im.turms.proto.Messages messages = 5;</code>
     */
    im.turms.server.common.access.client.dto.model.message.MessagesOrBuilder getMessagesOrBuilder();

    /**
     * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
     * @return Whether the messagesWithTotalList field is set.
     */
    boolean hasMessagesWithTotalList();
    /**
     * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
     * @return The messagesWithTotalList.
     */
    im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList getMessagesWithTotalList();
    /**
     * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
     */
    im.turms.server.common.access.client.dto.model.message.MessagesWithTotalListOrBuilder getMessagesWithTotalListOrBuilder();

    /**
     * <code>.im.turms.proto.UserSession user_session = 7;</code>
     * @return Whether the userSession field is set.
     */
    boolean hasUserSession();
    /**
     * <code>.im.turms.proto.UserSession user_session = 7;</code>
     * @return The userSession.
     */
    im.turms.server.common.access.client.dto.model.user.UserSession getUserSession();
    /**
     * <code>.im.turms.proto.UserSession user_session = 7;</code>
     */
    im.turms.server.common.access.client.dto.model.user.UserSessionOrBuilder getUserSessionOrBuilder();

    /**
     * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
     * @return Whether the usersInfosWithVersion field is set.
     */
    boolean hasUsersInfosWithVersion();
    /**
     * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
     * @return The usersInfosWithVersion.
     */
    im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion getUsersInfosWithVersion();
    /**
     * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
     */
    im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersionOrBuilder getUsersInfosWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
     * @return Whether the usersOnlineStatuses field is set.
     */
    boolean hasUsersOnlineStatuses();
    /**
     * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
     * @return The usersOnlineStatuses.
     */
    im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses getUsersOnlineStatuses();
    /**
     * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
     */
    im.turms.server.common.access.client.dto.model.user.UsersOnlineStatusesOrBuilder getUsersOnlineStatusesOrBuilder();

    /**
     * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
     * @return Whether the userFriendRequestsWithVersion field is set.
     */
    boolean hasUserFriendRequestsWithVersion();
    /**
     * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
     * @return The userFriendRequestsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion getUserFriendRequestsWithVersion();
    /**
     * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
     */
    im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersionOrBuilder getUserFriendRequestsWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
     * @return Whether the userRelationshipGroupsWithVersion field is set.
     */
    boolean hasUserRelationshipGroupsWithVersion();
    /**
     * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
     * @return The userRelationshipGroupsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion getUserRelationshipGroupsWithVersion();
    /**
     * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
     */
    im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersionOrBuilder getUserRelationshipGroupsWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
     * @return Whether the userRelationshipsWithVersion field is set.
     */
    boolean hasUserRelationshipsWithVersion();
    /**
     * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
     * @return The userRelationshipsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion getUserRelationshipsWithVersion();
    /**
     * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
     */
    im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersionOrBuilder getUserRelationshipsWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
     * @return Whether the nearbyUsers field is set.
     */
    boolean hasNearbyUsers();
    /**
     * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
     * @return The nearbyUsers.
     */
    im.turms.server.common.access.client.dto.model.user.NearbyUsers getNearbyUsers();
    /**
     * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
     */
    im.turms.server.common.access.client.dto.model.user.NearbyUsersOrBuilder getNearbyUsersOrBuilder();

    /**
     * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
     * @return Whether the groupInvitationsWithVersion field is set.
     */
    boolean hasGroupInvitationsWithVersion();
    /**
     * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
     * @return The groupInvitationsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion getGroupInvitationsWithVersion();
    /**
     * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
     */
    im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersionOrBuilder getGroupInvitationsWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
     * @return Whether the groupJoinQuestionAnswerResult field is set.
     */
    boolean hasGroupJoinQuestionAnswerResult();
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
     * @return The groupJoinQuestionAnswerResult.
     */
    im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult getGroupJoinQuestionAnswerResult();
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
     */
    im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResultOrBuilder getGroupJoinQuestionAnswerResultOrBuilder();

    /**
     * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
     * @return Whether the groupJoinRequestsWithVersion field is set.
     */
    boolean hasGroupJoinRequestsWithVersion();
    /**
     * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
     * @return The groupJoinRequestsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion getGroupJoinRequestsWithVersion();
    /**
     * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
     */
    im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersionOrBuilder getGroupJoinRequestsWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
     * @return Whether the groupJoinQuestionsWithVersion field is set.
     */
    boolean hasGroupJoinQuestionsWithVersion();
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
     * @return The groupJoinQuestionsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion getGroupJoinQuestionsWithVersion();
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
     */
    im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersionOrBuilder getGroupJoinQuestionsWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
     * @return Whether the groupMembersWithVersion field is set.
     */
    boolean hasGroupMembersWithVersion();
    /**
     * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
     * @return The groupMembersWithVersion.
     */
    im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion getGroupMembersWithVersion();
    /**
     * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
     */
    im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersionOrBuilder getGroupMembersWithVersionOrBuilder();

    /**
     * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
     * @return Whether the groupsWithVersion field is set.
     */
    boolean hasGroupsWithVersion();
    /**
     * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
     * @return The groupsWithVersion.
     */
    im.turms.server.common.access.client.dto.model.group.GroupsWithVersion getGroupsWithVersion();
    /**
     * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
     */
    im.turms.server.common.access.client.dto.model.group.GroupsWithVersionOrBuilder getGroupsWithVersionOrBuilder();

    public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.KindCase getKindCase();
  }
  /**
   * Protobuf type {@code im.turms.proto.TurmsNotification.Data}
   */
  public static final class Data extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:im.turms.proto.TurmsNotification.Data)
      DataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Data.newBuilder() to construct.
    private Data(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Data() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Data();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Data(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              im.turms.server.common.access.client.dto.model.common.Int64Values.Builder subBuilder = null;
              if (kindCase_ == 1) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.common.Int64Values) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.common.Int64Values.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.common.Int64Values) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 1;
              break;
            }
            case 18: {
              im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.Builder subBuilder = null;
              if (kindCase_ == 2) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 2;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              kindCase_ = 3;
              kind_ = s;
              break;
            }
            case 34: {
              im.turms.server.common.access.client.dto.model.conversation.Conversations.Builder subBuilder = null;
              if (kindCase_ == 4) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.conversation.Conversations.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 4;
              break;
            }
            case 42: {
              im.turms.server.common.access.client.dto.model.message.Messages.Builder subBuilder = null;
              if (kindCase_ == 5) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.message.Messages) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.message.Messages.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.message.Messages) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 5;
              break;
            }
            case 50: {
              im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.Builder subBuilder = null;
              if (kindCase_ == 6) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 6;
              break;
            }
            case 58: {
              im.turms.server.common.access.client.dto.model.user.UserSession.Builder subBuilder = null;
              if (kindCase_ == 7) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.user.UserSession) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.user.UserSession.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.user.UserSession) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 7;
              break;
            }
            case 66: {
              im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.Builder subBuilder = null;
              if (kindCase_ == 8) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 8;
              break;
            }
            case 74: {
              im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.Builder subBuilder = null;
              if (kindCase_ == 9) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 9;
              break;
            }
            case 82: {
              im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.Builder subBuilder = null;
              if (kindCase_ == 10) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 10;
              break;
            }
            case 90: {
              im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.Builder subBuilder = null;
              if (kindCase_ == 11) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 11;
              break;
            }
            case 98: {
              im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.Builder subBuilder = null;
              if (kindCase_ == 12) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 12;
              break;
            }
            case 106: {
              im.turms.server.common.access.client.dto.model.user.NearbyUsers.Builder subBuilder = null;
              if (kindCase_ == 13) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.user.NearbyUsers.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 13;
              break;
            }
            case 114: {
              im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.Builder subBuilder = null;
              if (kindCase_ == 14) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 14;
              break;
            }
            case 122: {
              im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.Builder subBuilder = null;
              if (kindCase_ == 15) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 15;
              break;
            }
            case 130: {
              im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.Builder subBuilder = null;
              if (kindCase_ == 16) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 16;
              break;
            }
            case 138: {
              im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.Builder subBuilder = null;
              if (kindCase_ == 17) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 17;
              break;
            }
            case 146: {
              im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.Builder subBuilder = null;
              if (kindCase_ == 18) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 18;
              break;
            }
            case 154: {
              im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.Builder subBuilder = null;
              if (kindCase_ == 19) {
                subBuilder = ((im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 19;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_Data_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_Data_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.class, im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder.class);
    }

    private int kindCase_ = 0;
    private java.lang.Object kind_;
    public enum KindCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      IDS(1),
      IDS_WITH_VERSION(2),
      URL(3),
      CONVERSATIONS(4),
      MESSAGES(5),
      MESSAGES_WITH_TOTAL_LIST(6),
      USER_SESSION(7),
      USERS_INFOS_WITH_VERSION(8),
      USERS_ONLINE_STATUSES(9),
      USER_FRIEND_REQUESTS_WITH_VERSION(10),
      USER_RELATIONSHIP_GROUPS_WITH_VERSION(11),
      USER_RELATIONSHIPS_WITH_VERSION(12),
      NEARBY_USERS(13),
      GROUP_INVITATIONS_WITH_VERSION(14),
      GROUP_JOIN_QUESTION_ANSWER_RESULT(15),
      GROUP_JOIN_REQUESTS_WITH_VERSION(16),
      GROUP_JOIN_QUESTIONS_WITH_VERSION(17),
      GROUP_MEMBERS_WITH_VERSION(18),
      GROUPS_WITH_VERSION(19),
      KIND_NOT_SET(0);
      private final int value;
      private KindCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static KindCase valueOf(int value) {
        return forNumber(value);
      }

      public static KindCase forNumber(int value) {
        switch (value) {
          case 1: return IDS;
          case 2: return IDS_WITH_VERSION;
          case 3: return URL;
          case 4: return CONVERSATIONS;
          case 5: return MESSAGES;
          case 6: return MESSAGES_WITH_TOTAL_LIST;
          case 7: return USER_SESSION;
          case 8: return USERS_INFOS_WITH_VERSION;
          case 9: return USERS_ONLINE_STATUSES;
          case 10: return USER_FRIEND_REQUESTS_WITH_VERSION;
          case 11: return USER_RELATIONSHIP_GROUPS_WITH_VERSION;
          case 12: return USER_RELATIONSHIPS_WITH_VERSION;
          case 13: return NEARBY_USERS;
          case 14: return GROUP_INVITATIONS_WITH_VERSION;
          case 15: return GROUP_JOIN_QUESTION_ANSWER_RESULT;
          case 16: return GROUP_JOIN_REQUESTS_WITH_VERSION;
          case 17: return GROUP_JOIN_QUESTIONS_WITH_VERSION;
          case 18: return GROUP_MEMBERS_WITH_VERSION;
          case 19: return GROUPS_WITH_VERSION;
          case 0: return KIND_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public KindCase
    getKindCase() {
      return KindCase.forNumber(
          kindCase_);
    }

    public static final int IDS_FIELD_NUMBER = 1;
    /**
     * <code>.im.turms.proto.Int64Values ids = 1;</code>
     * @return Whether the ids field is set.
     */
    @java.lang.Override
    public boolean hasIds() {
      return kindCase_ == 1;
    }
    /**
     * <code>.im.turms.proto.Int64Values ids = 1;</code>
     * @return The ids.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.common.Int64Values getIds() {
      if (kindCase_ == 1) {
         return (im.turms.server.common.access.client.dto.model.common.Int64Values) kind_;
      }
      return im.turms.server.common.access.client.dto.model.common.Int64Values.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.Int64Values ids = 1;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.common.Int64ValuesOrBuilder getIdsOrBuilder() {
      if (kindCase_ == 1) {
         return (im.turms.server.common.access.client.dto.model.common.Int64Values) kind_;
      }
      return im.turms.server.common.access.client.dto.model.common.Int64Values.getDefaultInstance();
    }

    public static final int IDS_WITH_VERSION_FIELD_NUMBER = 2;
    /**
     * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
     * @return Whether the idsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasIdsWithVersion() {
      return kindCase_ == 2;
    }
    /**
     * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
     * @return The idsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion getIdsWithVersion() {
      if (kindCase_ == 2) {
         return (im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersionOrBuilder getIdsWithVersionOrBuilder() {
      if (kindCase_ == 2) {
         return (im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.getDefaultInstance();
    }

    public static final int URL_FIELD_NUMBER = 3;
    /**
     * <code>string url = 3;</code>
     * @return Whether the url field is set.
     */
    public boolean hasUrl() {
      return kindCase_ == 3;
    }
    /**
     * <code>string url = 3;</code>
     * @return The url.
     */
    public java.lang.String getUrl() {
      java.lang.Object ref = "";
      if (kindCase_ == 3) {
        ref = kind_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (kindCase_ == 3) {
          kind_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string url = 3;</code>
     * @return The bytes for url.
     */
    public com.google.protobuf.ByteString
        getUrlBytes() {
      java.lang.Object ref = "";
      if (kindCase_ == 3) {
        ref = kind_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (kindCase_ == 3) {
          kind_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONVERSATIONS_FIELD_NUMBER = 4;
    /**
     * <code>.im.turms.proto.Conversations conversations = 4;</code>
     * @return Whether the conversations field is set.
     */
    @java.lang.Override
    public boolean hasConversations() {
      return kindCase_ == 4;
    }
    /**
     * <code>.im.turms.proto.Conversations conversations = 4;</code>
     * @return The conversations.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.conversation.Conversations getConversations() {
      if (kindCase_ == 4) {
         return (im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_;
      }
      return im.turms.server.common.access.client.dto.model.conversation.Conversations.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.Conversations conversations = 4;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.conversation.ConversationsOrBuilder getConversationsOrBuilder() {
      if (kindCase_ == 4) {
         return (im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_;
      }
      return im.turms.server.common.access.client.dto.model.conversation.Conversations.getDefaultInstance();
    }

    public static final int MESSAGES_FIELD_NUMBER = 5;
    /**
     * <code>.im.turms.proto.Messages messages = 5;</code>
     * @return Whether the messages field is set.
     */
    @java.lang.Override
    public boolean hasMessages() {
      return kindCase_ == 5;
    }
    /**
     * <code>.im.turms.proto.Messages messages = 5;</code>
     * @return The messages.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.message.Messages getMessages() {
      if (kindCase_ == 5) {
         return (im.turms.server.common.access.client.dto.model.message.Messages) kind_;
      }
      return im.turms.server.common.access.client.dto.model.message.Messages.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.Messages messages = 5;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.message.MessagesOrBuilder getMessagesOrBuilder() {
      if (kindCase_ == 5) {
         return (im.turms.server.common.access.client.dto.model.message.Messages) kind_;
      }
      return im.turms.server.common.access.client.dto.model.message.Messages.getDefaultInstance();
    }

    public static final int MESSAGES_WITH_TOTAL_LIST_FIELD_NUMBER = 6;
    /**
     * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
     * @return Whether the messagesWithTotalList field is set.
     */
    @java.lang.Override
    public boolean hasMessagesWithTotalList() {
      return kindCase_ == 6;
    }
    /**
     * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
     * @return The messagesWithTotalList.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList getMessagesWithTotalList() {
      if (kindCase_ == 6) {
         return (im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_;
      }
      return im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.message.MessagesWithTotalListOrBuilder getMessagesWithTotalListOrBuilder() {
      if (kindCase_ == 6) {
         return (im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_;
      }
      return im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.getDefaultInstance();
    }

    public static final int USER_SESSION_FIELD_NUMBER = 7;
    /**
     * <code>.im.turms.proto.UserSession user_session = 7;</code>
     * @return Whether the userSession field is set.
     */
    @java.lang.Override
    public boolean hasUserSession() {
      return kindCase_ == 7;
    }
    /**
     * <code>.im.turms.proto.UserSession user_session = 7;</code>
     * @return The userSession.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserSession getUserSession() {
      if (kindCase_ == 7) {
         return (im.turms.server.common.access.client.dto.model.user.UserSession) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserSession.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.UserSession user_session = 7;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserSessionOrBuilder getUserSessionOrBuilder() {
      if (kindCase_ == 7) {
         return (im.turms.server.common.access.client.dto.model.user.UserSession) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserSession.getDefaultInstance();
    }

    public static final int USERS_INFOS_WITH_VERSION_FIELD_NUMBER = 8;
    /**
     * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
     * @return Whether the usersInfosWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasUsersInfosWithVersion() {
      return kindCase_ == 8;
    }
    /**
     * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
     * @return The usersInfosWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion getUsersInfosWithVersion() {
      if (kindCase_ == 8) {
         return (im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersionOrBuilder getUsersInfosWithVersionOrBuilder() {
      if (kindCase_ == 8) {
         return (im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.getDefaultInstance();
    }

    public static final int USERS_ONLINE_STATUSES_FIELD_NUMBER = 9;
    /**
     * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
     * @return Whether the usersOnlineStatuses field is set.
     */
    @java.lang.Override
    public boolean hasUsersOnlineStatuses() {
      return kindCase_ == 9;
    }
    /**
     * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
     * @return The usersOnlineStatuses.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses getUsersOnlineStatuses() {
      if (kindCase_ == 9) {
         return (im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UsersOnlineStatusesOrBuilder getUsersOnlineStatusesOrBuilder() {
      if (kindCase_ == 9) {
         return (im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.getDefaultInstance();
    }

    public static final int USER_FRIEND_REQUESTS_WITH_VERSION_FIELD_NUMBER = 10;
    /**
     * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
     * @return Whether the userFriendRequestsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasUserFriendRequestsWithVersion() {
      return kindCase_ == 10;
    }
    /**
     * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
     * @return The userFriendRequestsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion getUserFriendRequestsWithVersion() {
      if (kindCase_ == 10) {
         return (im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersionOrBuilder getUserFriendRequestsWithVersionOrBuilder() {
      if (kindCase_ == 10) {
         return (im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.getDefaultInstance();
    }

    public static final int USER_RELATIONSHIP_GROUPS_WITH_VERSION_FIELD_NUMBER = 11;
    /**
     * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
     * @return Whether the userRelationshipGroupsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasUserRelationshipGroupsWithVersion() {
      return kindCase_ == 11;
    }
    /**
     * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
     * @return The userRelationshipGroupsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion getUserRelationshipGroupsWithVersion() {
      if (kindCase_ == 11) {
         return (im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersionOrBuilder getUserRelationshipGroupsWithVersionOrBuilder() {
      if (kindCase_ == 11) {
         return (im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.getDefaultInstance();
    }

    public static final int USER_RELATIONSHIPS_WITH_VERSION_FIELD_NUMBER = 12;
    /**
     * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
     * @return Whether the userRelationshipsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasUserRelationshipsWithVersion() {
      return kindCase_ == 12;
    }
    /**
     * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
     * @return The userRelationshipsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion getUserRelationshipsWithVersion() {
      if (kindCase_ == 12) {
         return (im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersionOrBuilder getUserRelationshipsWithVersionOrBuilder() {
      if (kindCase_ == 12) {
         return (im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.getDefaultInstance();
    }

    public static final int NEARBY_USERS_FIELD_NUMBER = 13;
    /**
     * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
     * @return Whether the nearbyUsers field is set.
     */
    @java.lang.Override
    public boolean hasNearbyUsers() {
      return kindCase_ == 13;
    }
    /**
     * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
     * @return The nearbyUsers.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.NearbyUsers getNearbyUsers() {
      if (kindCase_ == 13) {
         return (im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.NearbyUsers.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.user.NearbyUsersOrBuilder getNearbyUsersOrBuilder() {
      if (kindCase_ == 13) {
         return (im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_;
      }
      return im.turms.server.common.access.client.dto.model.user.NearbyUsers.getDefaultInstance();
    }

    public static final int GROUP_INVITATIONS_WITH_VERSION_FIELD_NUMBER = 14;
    /**
     * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
     * @return Whether the groupInvitationsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasGroupInvitationsWithVersion() {
      return kindCase_ == 14;
    }
    /**
     * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
     * @return The groupInvitationsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion getGroupInvitationsWithVersion() {
      if (kindCase_ == 14) {
         return (im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersionOrBuilder getGroupInvitationsWithVersionOrBuilder() {
      if (kindCase_ == 14) {
         return (im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.getDefaultInstance();
    }

    public static final int GROUP_JOIN_QUESTION_ANSWER_RESULT_FIELD_NUMBER = 15;
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
     * @return Whether the groupJoinQuestionAnswerResult field is set.
     */
    @java.lang.Override
    public boolean hasGroupJoinQuestionAnswerResult() {
      return kindCase_ == 15;
    }
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
     * @return The groupJoinQuestionAnswerResult.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult getGroupJoinQuestionAnswerResult() {
      if (kindCase_ == 15) {
         return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResultOrBuilder getGroupJoinQuestionAnswerResultOrBuilder() {
      if (kindCase_ == 15) {
         return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.getDefaultInstance();
    }

    public static final int GROUP_JOIN_REQUESTS_WITH_VERSION_FIELD_NUMBER = 16;
    /**
     * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
     * @return Whether the groupJoinRequestsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasGroupJoinRequestsWithVersion() {
      return kindCase_ == 16;
    }
    /**
     * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
     * @return The groupJoinRequestsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion getGroupJoinRequestsWithVersion() {
      if (kindCase_ == 16) {
         return (im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersionOrBuilder getGroupJoinRequestsWithVersionOrBuilder() {
      if (kindCase_ == 16) {
         return (im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.getDefaultInstance();
    }

    public static final int GROUP_JOIN_QUESTIONS_WITH_VERSION_FIELD_NUMBER = 17;
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
     * @return Whether the groupJoinQuestionsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasGroupJoinQuestionsWithVersion() {
      return kindCase_ == 17;
    }
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
     * @return The groupJoinQuestionsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion getGroupJoinQuestionsWithVersion() {
      if (kindCase_ == 17) {
         return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersionOrBuilder getGroupJoinQuestionsWithVersionOrBuilder() {
      if (kindCase_ == 17) {
         return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.getDefaultInstance();
    }

    public static final int GROUP_MEMBERS_WITH_VERSION_FIELD_NUMBER = 18;
    /**
     * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
     * @return Whether the groupMembersWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasGroupMembersWithVersion() {
      return kindCase_ == 18;
    }
    /**
     * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
     * @return The groupMembersWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion getGroupMembersWithVersion() {
      if (kindCase_ == 18) {
         return (im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersionOrBuilder getGroupMembersWithVersionOrBuilder() {
      if (kindCase_ == 18) {
         return (im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.getDefaultInstance();
    }

    public static final int GROUPS_WITH_VERSION_FIELD_NUMBER = 19;
    /**
     * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
     * @return Whether the groupsWithVersion field is set.
     */
    @java.lang.Override
    public boolean hasGroupsWithVersion() {
      return kindCase_ == 19;
    }
    /**
     * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
     * @return The groupsWithVersion.
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupsWithVersion getGroupsWithVersion() {
      if (kindCase_ == 19) {
         return (im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.getDefaultInstance();
    }
    /**
     * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
     */
    @java.lang.Override
    public im.turms.server.common.access.client.dto.model.group.GroupsWithVersionOrBuilder getGroupsWithVersionOrBuilder() {
      if (kindCase_ == 19) {
         return (im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_;
      }
      return im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (kindCase_ == 1) {
        output.writeMessage(1, (im.turms.server.common.access.client.dto.model.common.Int64Values) kind_);
      }
      if (kindCase_ == 2) {
        output.writeMessage(2, (im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_);
      }
      if (kindCase_ == 3) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, kind_);
      }
      if (kindCase_ == 4) {
        output.writeMessage(4, (im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_);
      }
      if (kindCase_ == 5) {
        output.writeMessage(5, (im.turms.server.common.access.client.dto.model.message.Messages) kind_);
      }
      if (kindCase_ == 6) {
        output.writeMessage(6, (im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_);
      }
      if (kindCase_ == 7) {
        output.writeMessage(7, (im.turms.server.common.access.client.dto.model.user.UserSession) kind_);
      }
      if (kindCase_ == 8) {
        output.writeMessage(8, (im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_);
      }
      if (kindCase_ == 9) {
        output.writeMessage(9, (im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_);
      }
      if (kindCase_ == 10) {
        output.writeMessage(10, (im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_);
      }
      if (kindCase_ == 11) {
        output.writeMessage(11, (im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_);
      }
      if (kindCase_ == 12) {
        output.writeMessage(12, (im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_);
      }
      if (kindCase_ == 13) {
        output.writeMessage(13, (im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_);
      }
      if (kindCase_ == 14) {
        output.writeMessage(14, (im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_);
      }
      if (kindCase_ == 15) {
        output.writeMessage(15, (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_);
      }
      if (kindCase_ == 16) {
        output.writeMessage(16, (im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_);
      }
      if (kindCase_ == 17) {
        output.writeMessage(17, (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_);
      }
      if (kindCase_ == 18) {
        output.writeMessage(18, (im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_);
      }
      if (kindCase_ == 19) {
        output.writeMessage(19, (im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (kindCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (im.turms.server.common.access.client.dto.model.common.Int64Values) kind_);
      }
      if (kindCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_);
      }
      if (kindCase_ == 3) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, kind_);
      }
      if (kindCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_);
      }
      if (kindCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (im.turms.server.common.access.client.dto.model.message.Messages) kind_);
      }
      if (kindCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_);
      }
      if (kindCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (im.turms.server.common.access.client.dto.model.user.UserSession) kind_);
      }
      if (kindCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_);
      }
      if (kindCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_);
      }
      if (kindCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_);
      }
      if (kindCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_);
      }
      if (kindCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_);
      }
      if (kindCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_);
      }
      if (kindCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_);
      }
      if (kindCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_);
      }
      if (kindCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_);
      }
      if (kindCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_);
      }
      if (kindCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, (im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_);
      }
      if (kindCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, (im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof im.turms.server.common.access.client.dto.notification.TurmsNotification.Data)) {
        return super.equals(obj);
      }
      im.turms.server.common.access.client.dto.notification.TurmsNotification.Data other = (im.turms.server.common.access.client.dto.notification.TurmsNotification.Data) obj;

      if (!getKindCase().equals(other.getKindCase())) return false;
      switch (kindCase_) {
        case 1:
          if (!getIds()
              .equals(other.getIds())) return false;
          break;
        case 2:
          if (!getIdsWithVersion()
              .equals(other.getIdsWithVersion())) return false;
          break;
        case 3:
          if (!getUrl()
              .equals(other.getUrl())) return false;
          break;
        case 4:
          if (!getConversations()
              .equals(other.getConversations())) return false;
          break;
        case 5:
          if (!getMessages()
              .equals(other.getMessages())) return false;
          break;
        case 6:
          if (!getMessagesWithTotalList()
              .equals(other.getMessagesWithTotalList())) return false;
          break;
        case 7:
          if (!getUserSession()
              .equals(other.getUserSession())) return false;
          break;
        case 8:
          if (!getUsersInfosWithVersion()
              .equals(other.getUsersInfosWithVersion())) return false;
          break;
        case 9:
          if (!getUsersOnlineStatuses()
              .equals(other.getUsersOnlineStatuses())) return false;
          break;
        case 10:
          if (!getUserFriendRequestsWithVersion()
              .equals(other.getUserFriendRequestsWithVersion())) return false;
          break;
        case 11:
          if (!getUserRelationshipGroupsWithVersion()
              .equals(other.getUserRelationshipGroupsWithVersion())) return false;
          break;
        case 12:
          if (!getUserRelationshipsWithVersion()
              .equals(other.getUserRelationshipsWithVersion())) return false;
          break;
        case 13:
          if (!getNearbyUsers()
              .equals(other.getNearbyUsers())) return false;
          break;
        case 14:
          if (!getGroupInvitationsWithVersion()
              .equals(other.getGroupInvitationsWithVersion())) return false;
          break;
        case 15:
          if (!getGroupJoinQuestionAnswerResult()
              .equals(other.getGroupJoinQuestionAnswerResult())) return false;
          break;
        case 16:
          if (!getGroupJoinRequestsWithVersion()
              .equals(other.getGroupJoinRequestsWithVersion())) return false;
          break;
        case 17:
          if (!getGroupJoinQuestionsWithVersion()
              .equals(other.getGroupJoinQuestionsWithVersion())) return false;
          break;
        case 18:
          if (!getGroupMembersWithVersion()
              .equals(other.getGroupMembersWithVersion())) return false;
          break;
        case 19:
          if (!getGroupsWithVersion()
              .equals(other.getGroupsWithVersion())) return false;
          break;
        case 0:
        default:
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (kindCase_) {
        case 1:
          hash = (37 * hash) + IDS_FIELD_NUMBER;
          hash = (53 * hash) + getIds().hashCode();
          break;
        case 2:
          hash = (37 * hash) + IDS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getIdsWithVersion().hashCode();
          break;
        case 3:
          hash = (37 * hash) + URL_FIELD_NUMBER;
          hash = (53 * hash) + getUrl().hashCode();
          break;
        case 4:
          hash = (37 * hash) + CONVERSATIONS_FIELD_NUMBER;
          hash = (53 * hash) + getConversations().hashCode();
          break;
        case 5:
          hash = (37 * hash) + MESSAGES_FIELD_NUMBER;
          hash = (53 * hash) + getMessages().hashCode();
          break;
        case 6:
          hash = (37 * hash) + MESSAGES_WITH_TOTAL_LIST_FIELD_NUMBER;
          hash = (53 * hash) + getMessagesWithTotalList().hashCode();
          break;
        case 7:
          hash = (37 * hash) + USER_SESSION_FIELD_NUMBER;
          hash = (53 * hash) + getUserSession().hashCode();
          break;
        case 8:
          hash = (37 * hash) + USERS_INFOS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getUsersInfosWithVersion().hashCode();
          break;
        case 9:
          hash = (37 * hash) + USERS_ONLINE_STATUSES_FIELD_NUMBER;
          hash = (53 * hash) + getUsersOnlineStatuses().hashCode();
          break;
        case 10:
          hash = (37 * hash) + USER_FRIEND_REQUESTS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getUserFriendRequestsWithVersion().hashCode();
          break;
        case 11:
          hash = (37 * hash) + USER_RELATIONSHIP_GROUPS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getUserRelationshipGroupsWithVersion().hashCode();
          break;
        case 12:
          hash = (37 * hash) + USER_RELATIONSHIPS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getUserRelationshipsWithVersion().hashCode();
          break;
        case 13:
          hash = (37 * hash) + NEARBY_USERS_FIELD_NUMBER;
          hash = (53 * hash) + getNearbyUsers().hashCode();
          break;
        case 14:
          hash = (37 * hash) + GROUP_INVITATIONS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getGroupInvitationsWithVersion().hashCode();
          break;
        case 15:
          hash = (37 * hash) + GROUP_JOIN_QUESTION_ANSWER_RESULT_FIELD_NUMBER;
          hash = (53 * hash) + getGroupJoinQuestionAnswerResult().hashCode();
          break;
        case 16:
          hash = (37 * hash) + GROUP_JOIN_REQUESTS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getGroupJoinRequestsWithVersion().hashCode();
          break;
        case 17:
          hash = (37 * hash) + GROUP_JOIN_QUESTIONS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getGroupJoinQuestionsWithVersion().hashCode();
          break;
        case 18:
          hash = (37 * hash) + GROUP_MEMBERS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getGroupMembersWithVersion().hashCode();
          break;
        case 19:
          hash = (37 * hash) + GROUPS_WITH_VERSION_FIELD_NUMBER;
          hash = (53 * hash) + getGroupsWithVersion().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(im.turms.server.common.access.client.dto.notification.TurmsNotification.Data prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code im.turms.proto.TurmsNotification.Data}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:im.turms.proto.TurmsNotification.Data)
        im.turms.server.common.access.client.dto.notification.TurmsNotification.DataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_Data_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_Data_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.class, im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder.class);
      }

      // Construct using im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        kindCase_ = 0;
        kind_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_Data_descriptor;
      }

      @java.lang.Override
      public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data getDefaultInstanceForType() {
        return im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.getDefaultInstance();
      }

      @java.lang.Override
      public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data build() {
        im.turms.server.common.access.client.dto.notification.TurmsNotification.Data result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data buildPartial() {
        im.turms.server.common.access.client.dto.notification.TurmsNotification.Data result = new im.turms.server.common.access.client.dto.notification.TurmsNotification.Data(this);
        switch (kindCase_) {
          case 1:
            if (idsBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = idsBuilder_.build();
            }
            break;
          case 2:
            if (idsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = idsWithVersionBuilder_.build();
            }
            break;
          case 3:
            result.kind_ = kind_;
            break;
          case 4:
            if (conversationsBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = conversationsBuilder_.build();
            }
            break;
          case 5:
            if (messagesBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = messagesBuilder_.build();
            }
            break;
          case 6:
            if (messagesWithTotalListBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = messagesWithTotalListBuilder_.build();
            }
            break;
          case 7:
            if (userSessionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = userSessionBuilder_.build();
            }
            break;
          case 8:
            if (usersInfosWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = usersInfosWithVersionBuilder_.build();
            }
            break;
          case 9:
            if (usersOnlineStatusesBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = usersOnlineStatusesBuilder_.build();
            }
            break;
          case 10:
            if (userFriendRequestsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = userFriendRequestsWithVersionBuilder_.build();
            }
            break;
          case 11:
            if (userRelationshipGroupsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = userRelationshipGroupsWithVersionBuilder_.build();
            }
            break;
          case 12:
            if (userRelationshipsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = userRelationshipsWithVersionBuilder_.build();
            }
            break;
          case 13:
            if (nearbyUsersBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = nearbyUsersBuilder_.build();
            }
            break;
          case 14:
            if (groupInvitationsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = groupInvitationsWithVersionBuilder_.build();
            }
            break;
          case 15:
            if (groupJoinQuestionAnswerResultBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = groupJoinQuestionAnswerResultBuilder_.build();
            }
            break;
          case 16:
            if (groupJoinRequestsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = groupJoinRequestsWithVersionBuilder_.build();
            }
            break;
          case 17:
            if (groupJoinQuestionsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = groupJoinQuestionsWithVersionBuilder_.build();
            }
            break;
          case 18:
            if (groupMembersWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = groupMembersWithVersionBuilder_.build();
            }
            break;
          case 19:
            if (groupsWithVersionBuilder_ == null) {
              result.kind_ = kind_;
            } else {
              result.kind_ = groupsWithVersionBuilder_.build();
            }
            break;
        }
        result.kindCase_ = kindCase_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof im.turms.server.common.access.client.dto.notification.TurmsNotification.Data) {
          return mergeFrom((im.turms.server.common.access.client.dto.notification.TurmsNotification.Data)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(im.turms.server.common.access.client.dto.notification.TurmsNotification.Data other) {
        if (other == im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.getDefaultInstance()) return this;
        switch (other.getKindCase()) {
          case IDS: {
            mergeIds(other.getIds());
            break;
          }
          case IDS_WITH_VERSION: {
            mergeIdsWithVersion(other.getIdsWithVersion());
            break;
          }
          case URL: {
            kindCase_ = 3;
            kind_ = other.kind_;
            onChanged();
            break;
          }
          case CONVERSATIONS: {
            mergeConversations(other.getConversations());
            break;
          }
          case MESSAGES: {
            mergeMessages(other.getMessages());
            break;
          }
          case MESSAGES_WITH_TOTAL_LIST: {
            mergeMessagesWithTotalList(other.getMessagesWithTotalList());
            break;
          }
          case USER_SESSION: {
            mergeUserSession(other.getUserSession());
            break;
          }
          case USERS_INFOS_WITH_VERSION: {
            mergeUsersInfosWithVersion(other.getUsersInfosWithVersion());
            break;
          }
          case USERS_ONLINE_STATUSES: {
            mergeUsersOnlineStatuses(other.getUsersOnlineStatuses());
            break;
          }
          case USER_FRIEND_REQUESTS_WITH_VERSION: {
            mergeUserFriendRequestsWithVersion(other.getUserFriendRequestsWithVersion());
            break;
          }
          case USER_RELATIONSHIP_GROUPS_WITH_VERSION: {
            mergeUserRelationshipGroupsWithVersion(other.getUserRelationshipGroupsWithVersion());
            break;
          }
          case USER_RELATIONSHIPS_WITH_VERSION: {
            mergeUserRelationshipsWithVersion(other.getUserRelationshipsWithVersion());
            break;
          }
          case NEARBY_USERS: {
            mergeNearbyUsers(other.getNearbyUsers());
            break;
          }
          case GROUP_INVITATIONS_WITH_VERSION: {
            mergeGroupInvitationsWithVersion(other.getGroupInvitationsWithVersion());
            break;
          }
          case GROUP_JOIN_QUESTION_ANSWER_RESULT: {
            mergeGroupJoinQuestionAnswerResult(other.getGroupJoinQuestionAnswerResult());
            break;
          }
          case GROUP_JOIN_REQUESTS_WITH_VERSION: {
            mergeGroupJoinRequestsWithVersion(other.getGroupJoinRequestsWithVersion());
            break;
          }
          case GROUP_JOIN_QUESTIONS_WITH_VERSION: {
            mergeGroupJoinQuestionsWithVersion(other.getGroupJoinQuestionsWithVersion());
            break;
          }
          case GROUP_MEMBERS_WITH_VERSION: {
            mergeGroupMembersWithVersion(other.getGroupMembersWithVersion());
            break;
          }
          case GROUPS_WITH_VERSION: {
            mergeGroupsWithVersion(other.getGroupsWithVersion());
            break;
          }
          case KIND_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        im.turms.server.common.access.client.dto.notification.TurmsNotification.Data parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (im.turms.server.common.access.client.dto.notification.TurmsNotification.Data) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int kindCase_ = 0;
      private java.lang.Object kind_;
      public KindCase
          getKindCase() {
        return KindCase.forNumber(
            kindCase_);
      }

      public Builder clearKind() {
        kindCase_ = 0;
        kind_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.common.Int64Values, im.turms.server.common.access.client.dto.model.common.Int64Values.Builder, im.turms.server.common.access.client.dto.model.common.Int64ValuesOrBuilder> idsBuilder_;
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       * @return Whether the ids field is set.
       */
      @java.lang.Override
      public boolean hasIds() {
        return kindCase_ == 1;
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       * @return The ids.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.common.Int64Values getIds() {
        if (idsBuilder_ == null) {
          if (kindCase_ == 1) {
            return (im.turms.server.common.access.client.dto.model.common.Int64Values) kind_;
          }
          return im.turms.server.common.access.client.dto.model.common.Int64Values.getDefaultInstance();
        } else {
          if (kindCase_ == 1) {
            return idsBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.common.Int64Values.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       */
      public Builder setIds(im.turms.server.common.access.client.dto.model.common.Int64Values value) {
        if (idsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          idsBuilder_.setMessage(value);
        }
        kindCase_ = 1;
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       */
      public Builder setIds(
          im.turms.server.common.access.client.dto.model.common.Int64Values.Builder builderForValue) {
        if (idsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          idsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 1;
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       */
      public Builder mergeIds(im.turms.server.common.access.client.dto.model.common.Int64Values value) {
        if (idsBuilder_ == null) {
          if (kindCase_ == 1 &&
              kind_ != im.turms.server.common.access.client.dto.model.common.Int64Values.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.common.Int64Values.newBuilder((im.turms.server.common.access.client.dto.model.common.Int64Values) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 1) {
            idsBuilder_.mergeFrom(value);
          } else {
            idsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 1;
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       */
      public Builder clearIds() {
        if (idsBuilder_ == null) {
          if (kindCase_ == 1) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 1) {
            kindCase_ = 0;
            kind_ = null;
          }
          idsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       */
      public im.turms.server.common.access.client.dto.model.common.Int64Values.Builder getIdsBuilder() {
        return getIdsFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.common.Int64ValuesOrBuilder getIdsOrBuilder() {
        if ((kindCase_ == 1) && (idsBuilder_ != null)) {
          return idsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 1) {
            return (im.turms.server.common.access.client.dto.model.common.Int64Values) kind_;
          }
          return im.turms.server.common.access.client.dto.model.common.Int64Values.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Int64Values ids = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.common.Int64Values, im.turms.server.common.access.client.dto.model.common.Int64Values.Builder, im.turms.server.common.access.client.dto.model.common.Int64ValuesOrBuilder> 
          getIdsFieldBuilder() {
        if (idsBuilder_ == null) {
          if (!(kindCase_ == 1)) {
            kind_ = im.turms.server.common.access.client.dto.model.common.Int64Values.getDefaultInstance();
          }
          idsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.common.Int64Values, im.turms.server.common.access.client.dto.model.common.Int64Values.Builder, im.turms.server.common.access.client.dto.model.common.Int64ValuesOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.common.Int64Values) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 1;
        onChanged();;
        return idsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion, im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.Builder, im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersionOrBuilder> idsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       * @return Whether the idsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasIdsWithVersion() {
        return kindCase_ == 2;
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       * @return The idsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion getIdsWithVersion() {
        if (idsWithVersionBuilder_ == null) {
          if (kindCase_ == 2) {
            return (im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 2) {
            return idsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       */
      public Builder setIdsWithVersion(im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion value) {
        if (idsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          idsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 2;
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       */
      public Builder setIdsWithVersion(
          im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.Builder builderForValue) {
        if (idsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          idsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 2;
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       */
      public Builder mergeIdsWithVersion(im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion value) {
        if (idsWithVersionBuilder_ == null) {
          if (kindCase_ == 2 &&
              kind_ != im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 2) {
            idsWithVersionBuilder_.mergeFrom(value);
          } else {
            idsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 2;
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       */
      public Builder clearIdsWithVersion() {
        if (idsWithVersionBuilder_ == null) {
          if (kindCase_ == 2) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 2) {
            kindCase_ = 0;
            kind_ = null;
          }
          idsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       */
      public im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.Builder getIdsWithVersionBuilder() {
        return getIdsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersionOrBuilder getIdsWithVersionOrBuilder() {
        if ((kindCase_ == 2) && (idsWithVersionBuilder_ != null)) {
          return idsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 2) {
            return (im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Int64ValuesWithVersion ids_with_version = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion, im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.Builder, im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersionOrBuilder> 
          getIdsWithVersionFieldBuilder() {
        if (idsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 2)) {
            kind_ = im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.getDefaultInstance();
          }
          idsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion, im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion.Builder, im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.common.Int64ValuesWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 2;
        onChanged();;
        return idsWithVersionBuilder_;
      }

      /**
       * <code>string url = 3;</code>
       * @return Whether the url field is set.
       */
      @java.lang.Override
      public boolean hasUrl() {
        return kindCase_ == 3;
      }
      /**
       * <code>string url = 3;</code>
       * @return The url.
       */
      @java.lang.Override
      public java.lang.String getUrl() {
        java.lang.Object ref = "";
        if (kindCase_ == 3) {
          ref = kind_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (kindCase_ == 3) {
            kind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string url = 3;</code>
       * @return The bytes for url.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUrlBytes() {
        java.lang.Object ref = "";
        if (kindCase_ == 3) {
          ref = kind_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (kindCase_ == 3) {
            kind_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string url = 3;</code>
       * @param value The url to set.
       * @return This builder for chaining.
       */
      public Builder setUrl(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  kindCase_ = 3;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string url = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUrl() {
        if (kindCase_ == 3) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string url = 3;</code>
       * @param value The bytes for url to set.
       * @return This builder for chaining.
       */
      public Builder setUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        kindCase_ = 3;
        kind_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.conversation.Conversations, im.turms.server.common.access.client.dto.model.conversation.Conversations.Builder, im.turms.server.common.access.client.dto.model.conversation.ConversationsOrBuilder> conversationsBuilder_;
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       * @return Whether the conversations field is set.
       */
      @java.lang.Override
      public boolean hasConversations() {
        return kindCase_ == 4;
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       * @return The conversations.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.conversation.Conversations getConversations() {
        if (conversationsBuilder_ == null) {
          if (kindCase_ == 4) {
            return (im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_;
          }
          return im.turms.server.common.access.client.dto.model.conversation.Conversations.getDefaultInstance();
        } else {
          if (kindCase_ == 4) {
            return conversationsBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.conversation.Conversations.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       */
      public Builder setConversations(im.turms.server.common.access.client.dto.model.conversation.Conversations value) {
        if (conversationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          conversationsBuilder_.setMessage(value);
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       */
      public Builder setConversations(
          im.turms.server.common.access.client.dto.model.conversation.Conversations.Builder builderForValue) {
        if (conversationsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          conversationsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       */
      public Builder mergeConversations(im.turms.server.common.access.client.dto.model.conversation.Conversations value) {
        if (conversationsBuilder_ == null) {
          if (kindCase_ == 4 &&
              kind_ != im.turms.server.common.access.client.dto.model.conversation.Conversations.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.conversation.Conversations.newBuilder((im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 4) {
            conversationsBuilder_.mergeFrom(value);
          } else {
            conversationsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       */
      public Builder clearConversations() {
        if (conversationsBuilder_ == null) {
          if (kindCase_ == 4) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 4) {
            kindCase_ = 0;
            kind_ = null;
          }
          conversationsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       */
      public im.turms.server.common.access.client.dto.model.conversation.Conversations.Builder getConversationsBuilder() {
        return getConversationsFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.conversation.ConversationsOrBuilder getConversationsOrBuilder() {
        if ((kindCase_ == 4) && (conversationsBuilder_ != null)) {
          return conversationsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 4) {
            return (im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_;
          }
          return im.turms.server.common.access.client.dto.model.conversation.Conversations.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Conversations conversations = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.conversation.Conversations, im.turms.server.common.access.client.dto.model.conversation.Conversations.Builder, im.turms.server.common.access.client.dto.model.conversation.ConversationsOrBuilder> 
          getConversationsFieldBuilder() {
        if (conversationsBuilder_ == null) {
          if (!(kindCase_ == 4)) {
            kind_ = im.turms.server.common.access.client.dto.model.conversation.Conversations.getDefaultInstance();
          }
          conversationsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.conversation.Conversations, im.turms.server.common.access.client.dto.model.conversation.Conversations.Builder, im.turms.server.common.access.client.dto.model.conversation.ConversationsOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.conversation.Conversations) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 4;
        onChanged();;
        return conversationsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.message.Messages, im.turms.server.common.access.client.dto.model.message.Messages.Builder, im.turms.server.common.access.client.dto.model.message.MessagesOrBuilder> messagesBuilder_;
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       * @return Whether the messages field is set.
       */
      @java.lang.Override
      public boolean hasMessages() {
        return kindCase_ == 5;
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       * @return The messages.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.message.Messages getMessages() {
        if (messagesBuilder_ == null) {
          if (kindCase_ == 5) {
            return (im.turms.server.common.access.client.dto.model.message.Messages) kind_;
          }
          return im.turms.server.common.access.client.dto.model.message.Messages.getDefaultInstance();
        } else {
          if (kindCase_ == 5) {
            return messagesBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.message.Messages.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       */
      public Builder setMessages(im.turms.server.common.access.client.dto.model.message.Messages value) {
        if (messagesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          messagesBuilder_.setMessage(value);
        }
        kindCase_ = 5;
        return this;
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       */
      public Builder setMessages(
          im.turms.server.common.access.client.dto.model.message.Messages.Builder builderForValue) {
        if (messagesBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          messagesBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 5;
        return this;
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       */
      public Builder mergeMessages(im.turms.server.common.access.client.dto.model.message.Messages value) {
        if (messagesBuilder_ == null) {
          if (kindCase_ == 5 &&
              kind_ != im.turms.server.common.access.client.dto.model.message.Messages.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.message.Messages.newBuilder((im.turms.server.common.access.client.dto.model.message.Messages) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 5) {
            messagesBuilder_.mergeFrom(value);
          } else {
            messagesBuilder_.setMessage(value);
          }
        }
        kindCase_ = 5;
        return this;
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       */
      public Builder clearMessages() {
        if (messagesBuilder_ == null) {
          if (kindCase_ == 5) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 5) {
            kindCase_ = 0;
            kind_ = null;
          }
          messagesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       */
      public im.turms.server.common.access.client.dto.model.message.Messages.Builder getMessagesBuilder() {
        return getMessagesFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.message.MessagesOrBuilder getMessagesOrBuilder() {
        if ((kindCase_ == 5) && (messagesBuilder_ != null)) {
          return messagesBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 5) {
            return (im.turms.server.common.access.client.dto.model.message.Messages) kind_;
          }
          return im.turms.server.common.access.client.dto.model.message.Messages.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.Messages messages = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.message.Messages, im.turms.server.common.access.client.dto.model.message.Messages.Builder, im.turms.server.common.access.client.dto.model.message.MessagesOrBuilder> 
          getMessagesFieldBuilder() {
        if (messagesBuilder_ == null) {
          if (!(kindCase_ == 5)) {
            kind_ = im.turms.server.common.access.client.dto.model.message.Messages.getDefaultInstance();
          }
          messagesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.message.Messages, im.turms.server.common.access.client.dto.model.message.Messages.Builder, im.turms.server.common.access.client.dto.model.message.MessagesOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.message.Messages) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 5;
        onChanged();;
        return messagesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList, im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.Builder, im.turms.server.common.access.client.dto.model.message.MessagesWithTotalListOrBuilder> messagesWithTotalListBuilder_;
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       * @return Whether the messagesWithTotalList field is set.
       */
      @java.lang.Override
      public boolean hasMessagesWithTotalList() {
        return kindCase_ == 6;
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       * @return The messagesWithTotalList.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList getMessagesWithTotalList() {
        if (messagesWithTotalListBuilder_ == null) {
          if (kindCase_ == 6) {
            return (im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_;
          }
          return im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.getDefaultInstance();
        } else {
          if (kindCase_ == 6) {
            return messagesWithTotalListBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       */
      public Builder setMessagesWithTotalList(im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList value) {
        if (messagesWithTotalListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          messagesWithTotalListBuilder_.setMessage(value);
        }
        kindCase_ = 6;
        return this;
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       */
      public Builder setMessagesWithTotalList(
          im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.Builder builderForValue) {
        if (messagesWithTotalListBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          messagesWithTotalListBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 6;
        return this;
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       */
      public Builder mergeMessagesWithTotalList(im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList value) {
        if (messagesWithTotalListBuilder_ == null) {
          if (kindCase_ == 6 &&
              kind_ != im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.newBuilder((im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 6) {
            messagesWithTotalListBuilder_.mergeFrom(value);
          } else {
            messagesWithTotalListBuilder_.setMessage(value);
          }
        }
        kindCase_ = 6;
        return this;
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       */
      public Builder clearMessagesWithTotalList() {
        if (messagesWithTotalListBuilder_ == null) {
          if (kindCase_ == 6) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 6) {
            kindCase_ = 0;
            kind_ = null;
          }
          messagesWithTotalListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       */
      public im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.Builder getMessagesWithTotalListBuilder() {
        return getMessagesWithTotalListFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.message.MessagesWithTotalListOrBuilder getMessagesWithTotalListOrBuilder() {
        if ((kindCase_ == 6) && (messagesWithTotalListBuilder_ != null)) {
          return messagesWithTotalListBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 6) {
            return (im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_;
          }
          return im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.MessagesWithTotalList messages_with_total_list = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList, im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.Builder, im.turms.server.common.access.client.dto.model.message.MessagesWithTotalListOrBuilder> 
          getMessagesWithTotalListFieldBuilder() {
        if (messagesWithTotalListBuilder_ == null) {
          if (!(kindCase_ == 6)) {
            kind_ = im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.getDefaultInstance();
          }
          messagesWithTotalListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList, im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList.Builder, im.turms.server.common.access.client.dto.model.message.MessagesWithTotalListOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.message.MessagesWithTotalList) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 6;
        onChanged();;
        return messagesWithTotalListBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserSession, im.turms.server.common.access.client.dto.model.user.UserSession.Builder, im.turms.server.common.access.client.dto.model.user.UserSessionOrBuilder> userSessionBuilder_;
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       * @return Whether the userSession field is set.
       */
      @java.lang.Override
      public boolean hasUserSession() {
        return kindCase_ == 7;
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       * @return The userSession.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserSession getUserSession() {
        if (userSessionBuilder_ == null) {
          if (kindCase_ == 7) {
            return (im.turms.server.common.access.client.dto.model.user.UserSession) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserSession.getDefaultInstance();
        } else {
          if (kindCase_ == 7) {
            return userSessionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.user.UserSession.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       */
      public Builder setUserSession(im.turms.server.common.access.client.dto.model.user.UserSession value) {
        if (userSessionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          userSessionBuilder_.setMessage(value);
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       */
      public Builder setUserSession(
          im.turms.server.common.access.client.dto.model.user.UserSession.Builder builderForValue) {
        if (userSessionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          userSessionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       */
      public Builder mergeUserSession(im.turms.server.common.access.client.dto.model.user.UserSession value) {
        if (userSessionBuilder_ == null) {
          if (kindCase_ == 7 &&
              kind_ != im.turms.server.common.access.client.dto.model.user.UserSession.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserSession.newBuilder((im.turms.server.common.access.client.dto.model.user.UserSession) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 7) {
            userSessionBuilder_.mergeFrom(value);
          } else {
            userSessionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       */
      public Builder clearUserSession() {
        if (userSessionBuilder_ == null) {
          if (kindCase_ == 7) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 7) {
            kindCase_ = 0;
            kind_ = null;
          }
          userSessionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       */
      public im.turms.server.common.access.client.dto.model.user.UserSession.Builder getUserSessionBuilder() {
        return getUserSessionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserSessionOrBuilder getUserSessionOrBuilder() {
        if ((kindCase_ == 7) && (userSessionBuilder_ != null)) {
          return userSessionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 7) {
            return (im.turms.server.common.access.client.dto.model.user.UserSession) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserSession.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserSession user_session = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserSession, im.turms.server.common.access.client.dto.model.user.UserSession.Builder, im.turms.server.common.access.client.dto.model.user.UserSessionOrBuilder> 
          getUserSessionFieldBuilder() {
        if (userSessionBuilder_ == null) {
          if (!(kindCase_ == 7)) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserSession.getDefaultInstance();
          }
          userSessionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.user.UserSession, im.turms.server.common.access.client.dto.model.user.UserSession.Builder, im.turms.server.common.access.client.dto.model.user.UserSessionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.user.UserSession) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 7;
        onChanged();;
        return userSessionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion, im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersionOrBuilder> usersInfosWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       * @return Whether the usersInfosWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasUsersInfosWithVersion() {
        return kindCase_ == 8;
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       * @return The usersInfosWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion getUsersInfosWithVersion() {
        if (usersInfosWithVersionBuilder_ == null) {
          if (kindCase_ == 8) {
            return (im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 8) {
            return usersInfosWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       */
      public Builder setUsersInfosWithVersion(im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion value) {
        if (usersInfosWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          usersInfosWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 8;
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       */
      public Builder setUsersInfosWithVersion(
          im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.Builder builderForValue) {
        if (usersInfosWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          usersInfosWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 8;
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       */
      public Builder mergeUsersInfosWithVersion(im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion value) {
        if (usersInfosWithVersionBuilder_ == null) {
          if (kindCase_ == 8 &&
              kind_ != im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 8) {
            usersInfosWithVersionBuilder_.mergeFrom(value);
          } else {
            usersInfosWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 8;
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       */
      public Builder clearUsersInfosWithVersion() {
        if (usersInfosWithVersionBuilder_ == null) {
          if (kindCase_ == 8) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 8) {
            kindCase_ = 0;
            kind_ = null;
          }
          usersInfosWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       */
      public im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.Builder getUsersInfosWithVersionBuilder() {
        return getUsersInfosWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersionOrBuilder getUsersInfosWithVersionOrBuilder() {
        if ((kindCase_ == 8) && (usersInfosWithVersionBuilder_ != null)) {
          return usersInfosWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 8) {
            return (im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UsersInfosWithVersion users_infos_with_version = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion, im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersionOrBuilder> 
          getUsersInfosWithVersionFieldBuilder() {
        if (usersInfosWithVersionBuilder_ == null) {
          if (!(kindCase_ == 8)) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.getDefaultInstance();
          }
          usersInfosWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion, im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.user.UsersInfosWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 8;
        onChanged();;
        return usersInfosWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses, im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.Builder, im.turms.server.common.access.client.dto.model.user.UsersOnlineStatusesOrBuilder> usersOnlineStatusesBuilder_;
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       * @return Whether the usersOnlineStatuses field is set.
       */
      @java.lang.Override
      public boolean hasUsersOnlineStatuses() {
        return kindCase_ == 9;
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       * @return The usersOnlineStatuses.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses getUsersOnlineStatuses() {
        if (usersOnlineStatusesBuilder_ == null) {
          if (kindCase_ == 9) {
            return (im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.getDefaultInstance();
        } else {
          if (kindCase_ == 9) {
            return usersOnlineStatusesBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       */
      public Builder setUsersOnlineStatuses(im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses value) {
        if (usersOnlineStatusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          usersOnlineStatusesBuilder_.setMessage(value);
        }
        kindCase_ = 9;
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       */
      public Builder setUsersOnlineStatuses(
          im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.Builder builderForValue) {
        if (usersOnlineStatusesBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          usersOnlineStatusesBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 9;
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       */
      public Builder mergeUsersOnlineStatuses(im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses value) {
        if (usersOnlineStatusesBuilder_ == null) {
          if (kindCase_ == 9 &&
              kind_ != im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.newBuilder((im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 9) {
            usersOnlineStatusesBuilder_.mergeFrom(value);
          } else {
            usersOnlineStatusesBuilder_.setMessage(value);
          }
        }
        kindCase_ = 9;
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       */
      public Builder clearUsersOnlineStatuses() {
        if (usersOnlineStatusesBuilder_ == null) {
          if (kindCase_ == 9) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 9) {
            kindCase_ = 0;
            kind_ = null;
          }
          usersOnlineStatusesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       */
      public im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.Builder getUsersOnlineStatusesBuilder() {
        return getUsersOnlineStatusesFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UsersOnlineStatusesOrBuilder getUsersOnlineStatusesOrBuilder() {
        if ((kindCase_ == 9) && (usersOnlineStatusesBuilder_ != null)) {
          return usersOnlineStatusesBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 9) {
            return (im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UsersOnlineStatuses users_online_statuses = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses, im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.Builder, im.turms.server.common.access.client.dto.model.user.UsersOnlineStatusesOrBuilder> 
          getUsersOnlineStatusesFieldBuilder() {
        if (usersOnlineStatusesBuilder_ == null) {
          if (!(kindCase_ == 9)) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.getDefaultInstance();
          }
          usersOnlineStatusesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses, im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses.Builder, im.turms.server.common.access.client.dto.model.user.UsersOnlineStatusesOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.user.UsersOnlineStatuses) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 9;
        onChanged();;
        return usersOnlineStatusesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion, im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersionOrBuilder> userFriendRequestsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       * @return Whether the userFriendRequestsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasUserFriendRequestsWithVersion() {
        return kindCase_ == 10;
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       * @return The userFriendRequestsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion getUserFriendRequestsWithVersion() {
        if (userFriendRequestsWithVersionBuilder_ == null) {
          if (kindCase_ == 10) {
            return (im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 10) {
            return userFriendRequestsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       */
      public Builder setUserFriendRequestsWithVersion(im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion value) {
        if (userFriendRequestsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          userFriendRequestsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 10;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       */
      public Builder setUserFriendRequestsWithVersion(
          im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.Builder builderForValue) {
        if (userFriendRequestsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          userFriendRequestsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 10;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       */
      public Builder mergeUserFriendRequestsWithVersion(im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion value) {
        if (userFriendRequestsWithVersionBuilder_ == null) {
          if (kindCase_ == 10 &&
              kind_ != im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 10) {
            userFriendRequestsWithVersionBuilder_.mergeFrom(value);
          } else {
            userFriendRequestsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 10;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       */
      public Builder clearUserFriendRequestsWithVersion() {
        if (userFriendRequestsWithVersionBuilder_ == null) {
          if (kindCase_ == 10) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 10) {
            kindCase_ = 0;
            kind_ = null;
          }
          userFriendRequestsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       */
      public im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.Builder getUserFriendRequestsWithVersionBuilder() {
        return getUserFriendRequestsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersionOrBuilder getUserFriendRequestsWithVersionOrBuilder() {
        if ((kindCase_ == 10) && (userFriendRequestsWithVersionBuilder_ != null)) {
          return userFriendRequestsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 10) {
            return (im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserFriendRequestsWithVersion user_friend_requests_with_version = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion, im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersionOrBuilder> 
          getUserFriendRequestsWithVersionFieldBuilder() {
        if (userFriendRequestsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 10)) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.getDefaultInstance();
          }
          userFriendRequestsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion, im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.user.UserFriendRequestsWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 10;
        onChanged();;
        return userFriendRequestsWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion, im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersionOrBuilder> userRelationshipGroupsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       * @return Whether the userRelationshipGroupsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasUserRelationshipGroupsWithVersion() {
        return kindCase_ == 11;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       * @return The userRelationshipGroupsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion getUserRelationshipGroupsWithVersion() {
        if (userRelationshipGroupsWithVersionBuilder_ == null) {
          if (kindCase_ == 11) {
            return (im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 11) {
            return userRelationshipGroupsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       */
      public Builder setUserRelationshipGroupsWithVersion(im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion value) {
        if (userRelationshipGroupsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          userRelationshipGroupsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 11;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       */
      public Builder setUserRelationshipGroupsWithVersion(
          im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.Builder builderForValue) {
        if (userRelationshipGroupsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          userRelationshipGroupsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 11;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       */
      public Builder mergeUserRelationshipGroupsWithVersion(im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion value) {
        if (userRelationshipGroupsWithVersionBuilder_ == null) {
          if (kindCase_ == 11 &&
              kind_ != im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 11) {
            userRelationshipGroupsWithVersionBuilder_.mergeFrom(value);
          } else {
            userRelationshipGroupsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 11;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       */
      public Builder clearUserRelationshipGroupsWithVersion() {
        if (userRelationshipGroupsWithVersionBuilder_ == null) {
          if (kindCase_ == 11) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 11) {
            kindCase_ = 0;
            kind_ = null;
          }
          userRelationshipGroupsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       */
      public im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.Builder getUserRelationshipGroupsWithVersionBuilder() {
        return getUserRelationshipGroupsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersionOrBuilder getUserRelationshipGroupsWithVersionOrBuilder() {
        if ((kindCase_ == 11) && (userRelationshipGroupsWithVersionBuilder_ != null)) {
          return userRelationshipGroupsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 11) {
            return (im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserRelationshipGroupsWithVersion user_relationship_groups_with_version = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion, im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersionOrBuilder> 
          getUserRelationshipGroupsWithVersionFieldBuilder() {
        if (userRelationshipGroupsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 11)) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.getDefaultInstance();
          }
          userRelationshipGroupsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion, im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.user.UserRelationshipGroupsWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 11;
        onChanged();;
        return userRelationshipGroupsWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion, im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersionOrBuilder> userRelationshipsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       * @return Whether the userRelationshipsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasUserRelationshipsWithVersion() {
        return kindCase_ == 12;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       * @return The userRelationshipsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion getUserRelationshipsWithVersion() {
        if (userRelationshipsWithVersionBuilder_ == null) {
          if (kindCase_ == 12) {
            return (im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 12) {
            return userRelationshipsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       */
      public Builder setUserRelationshipsWithVersion(im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion value) {
        if (userRelationshipsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          userRelationshipsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 12;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       */
      public Builder setUserRelationshipsWithVersion(
          im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.Builder builderForValue) {
        if (userRelationshipsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          userRelationshipsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 12;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       */
      public Builder mergeUserRelationshipsWithVersion(im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion value) {
        if (userRelationshipsWithVersionBuilder_ == null) {
          if (kindCase_ == 12 &&
              kind_ != im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 12) {
            userRelationshipsWithVersionBuilder_.mergeFrom(value);
          } else {
            userRelationshipsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 12;
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       */
      public Builder clearUserRelationshipsWithVersion() {
        if (userRelationshipsWithVersionBuilder_ == null) {
          if (kindCase_ == 12) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 12) {
            kindCase_ = 0;
            kind_ = null;
          }
          userRelationshipsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       */
      public im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.Builder getUserRelationshipsWithVersionBuilder() {
        return getUserRelationshipsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersionOrBuilder getUserRelationshipsWithVersionOrBuilder() {
        if ((kindCase_ == 12) && (userRelationshipsWithVersionBuilder_ != null)) {
          return userRelationshipsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 12) {
            return (im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.UserRelationshipsWithVersion user_relationships_with_version = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion, im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersionOrBuilder> 
          getUserRelationshipsWithVersionFieldBuilder() {
        if (userRelationshipsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 12)) {
            kind_ = im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.getDefaultInstance();
          }
          userRelationshipsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion, im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion.Builder, im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.user.UserRelationshipsWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 12;
        onChanged();;
        return userRelationshipsWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.NearbyUsers, im.turms.server.common.access.client.dto.model.user.NearbyUsers.Builder, im.turms.server.common.access.client.dto.model.user.NearbyUsersOrBuilder> nearbyUsersBuilder_;
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       * @return Whether the nearbyUsers field is set.
       */
      @java.lang.Override
      public boolean hasNearbyUsers() {
        return kindCase_ == 13;
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       * @return The nearbyUsers.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.NearbyUsers getNearbyUsers() {
        if (nearbyUsersBuilder_ == null) {
          if (kindCase_ == 13) {
            return (im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.NearbyUsers.getDefaultInstance();
        } else {
          if (kindCase_ == 13) {
            return nearbyUsersBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.user.NearbyUsers.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       */
      public Builder setNearbyUsers(im.turms.server.common.access.client.dto.model.user.NearbyUsers value) {
        if (nearbyUsersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          nearbyUsersBuilder_.setMessage(value);
        }
        kindCase_ = 13;
        return this;
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       */
      public Builder setNearbyUsers(
          im.turms.server.common.access.client.dto.model.user.NearbyUsers.Builder builderForValue) {
        if (nearbyUsersBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          nearbyUsersBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 13;
        return this;
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       */
      public Builder mergeNearbyUsers(im.turms.server.common.access.client.dto.model.user.NearbyUsers value) {
        if (nearbyUsersBuilder_ == null) {
          if (kindCase_ == 13 &&
              kind_ != im.turms.server.common.access.client.dto.model.user.NearbyUsers.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.user.NearbyUsers.newBuilder((im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 13) {
            nearbyUsersBuilder_.mergeFrom(value);
          } else {
            nearbyUsersBuilder_.setMessage(value);
          }
        }
        kindCase_ = 13;
        return this;
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       */
      public Builder clearNearbyUsers() {
        if (nearbyUsersBuilder_ == null) {
          if (kindCase_ == 13) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 13) {
            kindCase_ = 0;
            kind_ = null;
          }
          nearbyUsersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       */
      public im.turms.server.common.access.client.dto.model.user.NearbyUsers.Builder getNearbyUsersBuilder() {
        return getNearbyUsersFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.user.NearbyUsersOrBuilder getNearbyUsersOrBuilder() {
        if ((kindCase_ == 13) && (nearbyUsersBuilder_ != null)) {
          return nearbyUsersBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 13) {
            return (im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_;
          }
          return im.turms.server.common.access.client.dto.model.user.NearbyUsers.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.NearbyUsers nearby_users = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.user.NearbyUsers, im.turms.server.common.access.client.dto.model.user.NearbyUsers.Builder, im.turms.server.common.access.client.dto.model.user.NearbyUsersOrBuilder> 
          getNearbyUsersFieldBuilder() {
        if (nearbyUsersBuilder_ == null) {
          if (!(kindCase_ == 13)) {
            kind_ = im.turms.server.common.access.client.dto.model.user.NearbyUsers.getDefaultInstance();
          }
          nearbyUsersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.user.NearbyUsers, im.turms.server.common.access.client.dto.model.user.NearbyUsers.Builder, im.turms.server.common.access.client.dto.model.user.NearbyUsersOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.user.NearbyUsers) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 13;
        onChanged();;
        return nearbyUsersBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersionOrBuilder> groupInvitationsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       * @return Whether the groupInvitationsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasGroupInvitationsWithVersion() {
        return kindCase_ == 14;
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       * @return The groupInvitationsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion getGroupInvitationsWithVersion() {
        if (groupInvitationsWithVersionBuilder_ == null) {
          if (kindCase_ == 14) {
            return (im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 14) {
            return groupInvitationsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       */
      public Builder setGroupInvitationsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion value) {
        if (groupInvitationsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          groupInvitationsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 14;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       */
      public Builder setGroupInvitationsWithVersion(
          im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.Builder builderForValue) {
        if (groupInvitationsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          groupInvitationsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 14;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       */
      public Builder mergeGroupInvitationsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion value) {
        if (groupInvitationsWithVersionBuilder_ == null) {
          if (kindCase_ == 14 &&
              kind_ != im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 14) {
            groupInvitationsWithVersionBuilder_.mergeFrom(value);
          } else {
            groupInvitationsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 14;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       */
      public Builder clearGroupInvitationsWithVersion() {
        if (groupInvitationsWithVersionBuilder_ == null) {
          if (kindCase_ == 14) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 14) {
            kindCase_ = 0;
            kind_ = null;
          }
          groupInvitationsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       */
      public im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.Builder getGroupInvitationsWithVersionBuilder() {
        return getGroupInvitationsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersionOrBuilder getGroupInvitationsWithVersionOrBuilder() {
        if ((kindCase_ == 14) && (groupInvitationsWithVersionBuilder_ != null)) {
          return groupInvitationsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 14) {
            return (im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupInvitationsWithVersion group_invitations_with_version = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersionOrBuilder> 
          getGroupInvitationsWithVersionFieldBuilder() {
        if (groupInvitationsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 14)) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.getDefaultInstance();
          }
          groupInvitationsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.group.GroupInvitationsWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 14;
        onChanged();;
        return groupInvitationsWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResultOrBuilder> groupJoinQuestionAnswerResultBuilder_;
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       * @return Whether the groupJoinQuestionAnswerResult field is set.
       */
      @java.lang.Override
      public boolean hasGroupJoinQuestionAnswerResult() {
        return kindCase_ == 15;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       * @return The groupJoinQuestionAnswerResult.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult getGroupJoinQuestionAnswerResult() {
        if (groupJoinQuestionAnswerResultBuilder_ == null) {
          if (kindCase_ == 15) {
            return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.getDefaultInstance();
        } else {
          if (kindCase_ == 15) {
            return groupJoinQuestionAnswerResultBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       */
      public Builder setGroupJoinQuestionAnswerResult(im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult value) {
        if (groupJoinQuestionAnswerResultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          groupJoinQuestionAnswerResultBuilder_.setMessage(value);
        }
        kindCase_ = 15;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       */
      public Builder setGroupJoinQuestionAnswerResult(
          im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.Builder builderForValue) {
        if (groupJoinQuestionAnswerResultBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          groupJoinQuestionAnswerResultBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 15;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       */
      public Builder mergeGroupJoinQuestionAnswerResult(im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult value) {
        if (groupJoinQuestionAnswerResultBuilder_ == null) {
          if (kindCase_ == 15 &&
              kind_ != im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.newBuilder((im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 15) {
            groupJoinQuestionAnswerResultBuilder_.mergeFrom(value);
          } else {
            groupJoinQuestionAnswerResultBuilder_.setMessage(value);
          }
        }
        kindCase_ = 15;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       */
      public Builder clearGroupJoinQuestionAnswerResult() {
        if (groupJoinQuestionAnswerResultBuilder_ == null) {
          if (kindCase_ == 15) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 15) {
            kindCase_ = 0;
            kind_ = null;
          }
          groupJoinQuestionAnswerResultBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       */
      public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.Builder getGroupJoinQuestionAnswerResultBuilder() {
        return getGroupJoinQuestionAnswerResultFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResultOrBuilder getGroupJoinQuestionAnswerResultOrBuilder() {
        if ((kindCase_ == 15) && (groupJoinQuestionAnswerResultBuilder_ != null)) {
          return groupJoinQuestionAnswerResultBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 15) {
            return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsAnswerResult group_join_question_answer_result = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResultOrBuilder> 
          getGroupJoinQuestionAnswerResultFieldBuilder() {
        if (groupJoinQuestionAnswerResultBuilder_ == null) {
          if (!(kindCase_ == 15)) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.getDefaultInstance();
          }
          groupJoinQuestionAnswerResultBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResultOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsAnswerResult) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 15;
        onChanged();;
        return groupJoinQuestionAnswerResultBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersionOrBuilder> groupJoinRequestsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       * @return Whether the groupJoinRequestsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasGroupJoinRequestsWithVersion() {
        return kindCase_ == 16;
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       * @return The groupJoinRequestsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion getGroupJoinRequestsWithVersion() {
        if (groupJoinRequestsWithVersionBuilder_ == null) {
          if (kindCase_ == 16) {
            return (im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 16) {
            return groupJoinRequestsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       */
      public Builder setGroupJoinRequestsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion value) {
        if (groupJoinRequestsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          groupJoinRequestsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 16;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       */
      public Builder setGroupJoinRequestsWithVersion(
          im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.Builder builderForValue) {
        if (groupJoinRequestsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          groupJoinRequestsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 16;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       */
      public Builder mergeGroupJoinRequestsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion value) {
        if (groupJoinRequestsWithVersionBuilder_ == null) {
          if (kindCase_ == 16 &&
              kind_ != im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 16) {
            groupJoinRequestsWithVersionBuilder_.mergeFrom(value);
          } else {
            groupJoinRequestsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 16;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       */
      public Builder clearGroupJoinRequestsWithVersion() {
        if (groupJoinRequestsWithVersionBuilder_ == null) {
          if (kindCase_ == 16) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 16) {
            kindCase_ = 0;
            kind_ = null;
          }
          groupJoinRequestsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       */
      public im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.Builder getGroupJoinRequestsWithVersionBuilder() {
        return getGroupJoinRequestsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersionOrBuilder getGroupJoinRequestsWithVersionOrBuilder() {
        if ((kindCase_ == 16) && (groupJoinRequestsWithVersionBuilder_ != null)) {
          return groupJoinRequestsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 16) {
            return (im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupJoinRequestsWithVersion group_join_requests_with_version = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersionOrBuilder> 
          getGroupJoinRequestsWithVersionFieldBuilder() {
        if (groupJoinRequestsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 16)) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.getDefaultInstance();
          }
          groupJoinRequestsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.group.GroupJoinRequestsWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 16;
        onChanged();;
        return groupJoinRequestsWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersionOrBuilder> groupJoinQuestionsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       * @return Whether the groupJoinQuestionsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasGroupJoinQuestionsWithVersion() {
        return kindCase_ == 17;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       * @return The groupJoinQuestionsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion getGroupJoinQuestionsWithVersion() {
        if (groupJoinQuestionsWithVersionBuilder_ == null) {
          if (kindCase_ == 17) {
            return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 17) {
            return groupJoinQuestionsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       */
      public Builder setGroupJoinQuestionsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion value) {
        if (groupJoinQuestionsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          groupJoinQuestionsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 17;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       */
      public Builder setGroupJoinQuestionsWithVersion(
          im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.Builder builderForValue) {
        if (groupJoinQuestionsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          groupJoinQuestionsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 17;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       */
      public Builder mergeGroupJoinQuestionsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion value) {
        if (groupJoinQuestionsWithVersionBuilder_ == null) {
          if (kindCase_ == 17 &&
              kind_ != im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 17) {
            groupJoinQuestionsWithVersionBuilder_.mergeFrom(value);
          } else {
            groupJoinQuestionsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 17;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       */
      public Builder clearGroupJoinQuestionsWithVersion() {
        if (groupJoinQuestionsWithVersionBuilder_ == null) {
          if (kindCase_ == 17) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 17) {
            kindCase_ = 0;
            kind_ = null;
          }
          groupJoinQuestionsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       */
      public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.Builder getGroupJoinQuestionsWithVersionBuilder() {
        return getGroupJoinQuestionsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersionOrBuilder getGroupJoinQuestionsWithVersionOrBuilder() {
        if ((kindCase_ == 17) && (groupJoinQuestionsWithVersionBuilder_ != null)) {
          return groupJoinQuestionsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 17) {
            return (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupJoinQuestionsWithVersion group_join_questions_with_version = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersionOrBuilder> 
          getGroupJoinQuestionsWithVersionFieldBuilder() {
        if (groupJoinQuestionsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 17)) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.getDefaultInstance();
          }
          groupJoinQuestionsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.group.GroupJoinQuestionsWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 17;
        onChanged();;
        return groupJoinQuestionsWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion, im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersionOrBuilder> groupMembersWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       * @return Whether the groupMembersWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasGroupMembersWithVersion() {
        return kindCase_ == 18;
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       * @return The groupMembersWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion getGroupMembersWithVersion() {
        if (groupMembersWithVersionBuilder_ == null) {
          if (kindCase_ == 18) {
            return (im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 18) {
            return groupMembersWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       */
      public Builder setGroupMembersWithVersion(im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion value) {
        if (groupMembersWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          groupMembersWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 18;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       */
      public Builder setGroupMembersWithVersion(
          im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.Builder builderForValue) {
        if (groupMembersWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          groupMembersWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 18;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       */
      public Builder mergeGroupMembersWithVersion(im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion value) {
        if (groupMembersWithVersionBuilder_ == null) {
          if (kindCase_ == 18 &&
              kind_ != im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 18) {
            groupMembersWithVersionBuilder_.mergeFrom(value);
          } else {
            groupMembersWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 18;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       */
      public Builder clearGroupMembersWithVersion() {
        if (groupMembersWithVersionBuilder_ == null) {
          if (kindCase_ == 18) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 18) {
            kindCase_ = 0;
            kind_ = null;
          }
          groupMembersWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       */
      public im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.Builder getGroupMembersWithVersionBuilder() {
        return getGroupMembersWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersionOrBuilder getGroupMembersWithVersionOrBuilder() {
        if ((kindCase_ == 18) && (groupMembersWithVersionBuilder_ != null)) {
          return groupMembersWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 18) {
            return (im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupMembersWithVersion group_members_with_version = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion, im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersionOrBuilder> 
          getGroupMembersWithVersionFieldBuilder() {
        if (groupMembersWithVersionBuilder_ == null) {
          if (!(kindCase_ == 18)) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.getDefaultInstance();
          }
          groupMembersWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion, im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.group.GroupMembersWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 18;
        onChanged();;
        return groupMembersWithVersionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupsWithVersionOrBuilder> groupsWithVersionBuilder_;
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       * @return Whether the groupsWithVersion field is set.
       */
      @java.lang.Override
      public boolean hasGroupsWithVersion() {
        return kindCase_ == 19;
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       * @return The groupsWithVersion.
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupsWithVersion getGroupsWithVersion() {
        if (groupsWithVersionBuilder_ == null) {
          if (kindCase_ == 19) {
            return (im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.getDefaultInstance();
        } else {
          if (kindCase_ == 19) {
            return groupsWithVersionBuilder_.getMessage();
          }
          return im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       */
      public Builder setGroupsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupsWithVersion value) {
        if (groupsWithVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          groupsWithVersionBuilder_.setMessage(value);
        }
        kindCase_ = 19;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       */
      public Builder setGroupsWithVersion(
          im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.Builder builderForValue) {
        if (groupsWithVersionBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          groupsWithVersionBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 19;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       */
      public Builder mergeGroupsWithVersion(im.turms.server.common.access.client.dto.model.group.GroupsWithVersion value) {
        if (groupsWithVersionBuilder_ == null) {
          if (kindCase_ == 19 &&
              kind_ != im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.getDefaultInstance()) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.newBuilder((im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 19) {
            groupsWithVersionBuilder_.mergeFrom(value);
          } else {
            groupsWithVersionBuilder_.setMessage(value);
          }
        }
        kindCase_ = 19;
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       */
      public Builder clearGroupsWithVersion() {
        if (groupsWithVersionBuilder_ == null) {
          if (kindCase_ == 19) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 19) {
            kindCase_ = 0;
            kind_ = null;
          }
          groupsWithVersionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       */
      public im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.Builder getGroupsWithVersionBuilder() {
        return getGroupsWithVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       */
      @java.lang.Override
      public im.turms.server.common.access.client.dto.model.group.GroupsWithVersionOrBuilder getGroupsWithVersionOrBuilder() {
        if ((kindCase_ == 19) && (groupsWithVersionBuilder_ != null)) {
          return groupsWithVersionBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 19) {
            return (im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_;
          }
          return im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.getDefaultInstance();
        }
      }
      /**
       * <code>.im.turms.proto.GroupsWithVersion groups_with_version = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          im.turms.server.common.access.client.dto.model.group.GroupsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupsWithVersionOrBuilder> 
          getGroupsWithVersionFieldBuilder() {
        if (groupsWithVersionBuilder_ == null) {
          if (!(kindCase_ == 19)) {
            kind_ = im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.getDefaultInstance();
          }
          groupsWithVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              im.turms.server.common.access.client.dto.model.group.GroupsWithVersion, im.turms.server.common.access.client.dto.model.group.GroupsWithVersion.Builder, im.turms.server.common.access.client.dto.model.group.GroupsWithVersionOrBuilder>(
                  (im.turms.server.common.access.client.dto.model.group.GroupsWithVersion) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 19;
        onChanged();;
        return groupsWithVersionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:im.turms.proto.TurmsNotification.Data)
    }

    // @@protoc_insertion_point(class_scope:im.turms.proto.TurmsNotification.Data)
    private static final im.turms.server.common.access.client.dto.notification.TurmsNotification.Data DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new im.turms.server.common.access.client.dto.notification.TurmsNotification.Data();
    }

    public static im.turms.server.common.access.client.dto.notification.TurmsNotification.Data getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Data>
        PARSER = new com.google.protobuf.AbstractParser<Data>() {
      @java.lang.Override
      public Data parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Data(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Data> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Data> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private int bitField0_;
  public static final int REQUEST_ID_FIELD_NUMBER = 1;
  private long requestId_;
  /**
   * <pre>
   * Response
   * request_id is used to tell the client that this notification is for the specific request
   * </pre>
   *
   * <code>optional int64 request_id = 1;</code>
   * @return Whether the requestId field is set.
   */
  @java.lang.Override
  public boolean hasRequestId() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   * <pre>
   * Response
   * request_id is used to tell the client that this notification is for the specific request
   * </pre>
   *
   * <code>optional int64 request_id = 1;</code>
   * @return The requestId.
   */
  @java.lang.Override
  public long getRequestId() {
    return requestId_;
  }

  public static final int CODE_FIELD_NUMBER = 2;
  private int code_;
  /**
   * <code>optional int32 code = 2;</code>
   * @return Whether the code field is set.
   */
  @java.lang.Override
  public boolean hasCode() {
    return ((bitField0_ & 0x00000002) != 0);
  }
  /**
   * <code>optional int32 code = 2;</code>
   * @return The code.
   */
  @java.lang.Override
  public int getCode() {
    return code_;
  }

  public static final int REASON_FIELD_NUMBER = 3;
  private volatile java.lang.Object reason_;
  /**
   * <code>optional string reason = 3;</code>
   * @return Whether the reason field is set.
   */
  @java.lang.Override
  public boolean hasReason() {
    return ((bitField0_ & 0x00000004) != 0);
  }
  /**
   * <code>optional string reason = 3;</code>
   * @return The reason.
   */
  @java.lang.Override
  public java.lang.String getReason() {
    java.lang.Object ref = reason_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      reason_ = s;
      return s;
    }
  }
  /**
   * <code>optional string reason = 3;</code>
   * @return The bytes for reason.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getReasonBytes() {
    java.lang.Object ref = reason_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      reason_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int DATA_FIELD_NUMBER = 4;
  private im.turms.server.common.access.client.dto.notification.TurmsNotification.Data data_;
  /**
   * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
   * @return Whether the data field is set.
   */
  @java.lang.Override
  public boolean hasData() {
    return data_ != null;
  }
  /**
   * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
   * @return The data.
   */
  @java.lang.Override
  public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data getData() {
    return data_ == null ? im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.getDefaultInstance() : data_;
  }
  /**
   * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
   */
  @java.lang.Override
  public im.turms.server.common.access.client.dto.notification.TurmsNotification.DataOrBuilder getDataOrBuilder() {
    return getData();
  }

  public static final int REQUESTER_ID_FIELD_NUMBER = 5;
  private long requesterId_;
  /**
   * <pre>
   * Notification
   * requester_id only exists when a requester triggers a notification to its recipients
   * Note: Do not move requester_id to TurmsRequest because it requires rebuilding
   * a new TurmsNotification when recipients need the requester_id.
   * </pre>
   *
   * <code>optional int64 requester_id = 5;</code>
   * @return Whether the requesterId field is set.
   */
  @java.lang.Override
  public boolean hasRequesterId() {
    return ((bitField0_ & 0x00000008) != 0);
  }
  /**
   * <pre>
   * Notification
   * requester_id only exists when a requester triggers a notification to its recipients
   * Note: Do not move requester_id to TurmsRequest because it requires rebuilding
   * a new TurmsNotification when recipients need the requester_id.
   * </pre>
   *
   * <code>optional int64 requester_id = 5;</code>
   * @return The requesterId.
   */
  @java.lang.Override
  public long getRequesterId() {
    return requesterId_;
  }

  public static final int CLOSE_STATUS_FIELD_NUMBER = 6;
  private int closeStatus_;
  /**
   * <code>optional int32 close_status = 6;</code>
   * @return Whether the closeStatus field is set.
   */
  @java.lang.Override
  public boolean hasCloseStatus() {
    return ((bitField0_ & 0x00000010) != 0);
  }
  /**
   * <code>optional int32 close_status = 6;</code>
   * @return The closeStatus.
   */
  @java.lang.Override
  public int getCloseStatus() {
    return closeStatus_;
  }

  public static final int RELAYED_REQUEST_FIELD_NUMBER = 7;
  private im.turms.server.common.access.client.dto.request.TurmsRequest relayedRequest_;
  /**
   * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
   * @return Whether the relayedRequest field is set.
   */
  @java.lang.Override
  public boolean hasRelayedRequest() {
    return relayedRequest_ != null;
  }
  /**
   * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
   * @return The relayedRequest.
   */
  @java.lang.Override
  public im.turms.server.common.access.client.dto.request.TurmsRequest getRelayedRequest() {
    return relayedRequest_ == null ? im.turms.server.common.access.client.dto.request.TurmsRequest.getDefaultInstance() : relayedRequest_;
  }
  /**
   * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
   */
  @java.lang.Override
  public im.turms.server.common.access.client.dto.request.TurmsRequestOrBuilder getRelayedRequestOrBuilder() {
    return getRelayedRequest();
  }

  private byte memoizedIsInitialized = -1;
  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeInt64(1, requestId_);
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      output.writeInt32(2, code_);
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reason_);
    }
    if (data_ != null) {
      output.writeMessage(4, getData());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      output.writeInt64(5, requesterId_);
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      output.writeInt32(6, closeStatus_);
    }
    if (relayedRequest_ != null) {
      output.writeMessage(7, getRelayedRequest());
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt64Size(1, requestId_);
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(2, code_);
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reason_);
    }
    if (data_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(4, getData());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt64Size(5, requesterId_);
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(6, closeStatus_);
    }
    if (relayedRequest_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(7, getRelayedRequest());
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof im.turms.server.common.access.client.dto.notification.TurmsNotification)) {
      return super.equals(obj);
    }
    im.turms.server.common.access.client.dto.notification.TurmsNotification other = (im.turms.server.common.access.client.dto.notification.TurmsNotification) obj;

    if (hasRequestId() != other.hasRequestId()) return false;
    if (hasRequestId()) {
      if (getRequestId()
          != other.getRequestId()) return false;
    }
    if (hasCode() != other.hasCode()) return false;
    if (hasCode()) {
      if (getCode()
          != other.getCode()) return false;
    }
    if (hasReason() != other.hasReason()) return false;
    if (hasReason()) {
      if (!getReason()
          .equals(other.getReason())) return false;
    }
    if (hasData() != other.hasData()) return false;
    if (hasData()) {
      if (!getData()
          .equals(other.getData())) return false;
    }
    if (hasRequesterId() != other.hasRequesterId()) return false;
    if (hasRequesterId()) {
      if (getRequesterId()
          != other.getRequesterId()) return false;
    }
    if (hasCloseStatus() != other.hasCloseStatus()) return false;
    if (hasCloseStatus()) {
      if (getCloseStatus()
          != other.getCloseStatus()) return false;
    }
    if (hasRelayedRequest() != other.hasRelayedRequest()) return false;
    if (hasRelayedRequest()) {
      if (!getRelayedRequest()
          .equals(other.getRelayedRequest())) return false;
    }
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasRequestId()) {
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getRequestId());
    }
    if (hasCode()) {
      hash = (37 * hash) + CODE_FIELD_NUMBER;
      hash = (53 * hash) + getCode();
    }
    if (hasReason()) {
      hash = (37 * hash) + REASON_FIELD_NUMBER;
      hash = (53 * hash) + getReason().hashCode();
    }
    if (hasData()) {
      hash = (37 * hash) + DATA_FIELD_NUMBER;
      hash = (53 * hash) + getData().hashCode();
    }
    if (hasRequesterId()) {
      hash = (37 * hash) + REQUESTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getRequesterId());
    }
    if (hasCloseStatus()) {
      hash = (37 * hash) + CLOSE_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + getCloseStatus();
    }
    if (hasRelayedRequest()) {
      hash = (37 * hash) + RELAYED_REQUEST_FIELD_NUMBER;
      hash = (53 * hash) + getRelayedRequest().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static im.turms.server.common.access.client.dto.notification.TurmsNotification parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(im.turms.server.common.access.client.dto.notification.TurmsNotification prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * Protobuf type {@code im.turms.proto.TurmsNotification}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:im.turms.proto.TurmsNotification)
      im.turms.server.common.access.client.dto.notification.TurmsNotificationOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              im.turms.server.common.access.client.dto.notification.TurmsNotification.class, im.turms.server.common.access.client.dto.notification.TurmsNotification.Builder.class);
    }

    // Construct using im.turms.server.common.access.client.dto.notification.TurmsNotification.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
              .alwaysUseFieldBuilders) {
      }
    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      requestId_ = 0L;
      bitField0_ = (bitField0_ & ~0x00000001);
      code_ = 0;
      bitField0_ = (bitField0_ & ~0x00000002);
      reason_ = "";
      bitField0_ = (bitField0_ & ~0x00000004);
      if (dataBuilder_ == null) {
        data_ = null;
      } else {
        data_ = null;
        dataBuilder_ = null;
      }
      requesterId_ = 0L;
      bitField0_ = (bitField0_ & ~0x00000008);
      closeStatus_ = 0;
      bitField0_ = (bitField0_ & ~0x00000010);
      if (relayedRequestBuilder_ == null) {
        relayedRequest_ = null;
      } else {
        relayedRequest_ = null;
        relayedRequestBuilder_ = null;
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return im.turms.server.common.access.client.dto.notification.TurmsNotificationOuterClass.internal_static_im_turms_proto_TurmsNotification_descriptor;
    }

    @java.lang.Override
    public im.turms.server.common.access.client.dto.notification.TurmsNotification getDefaultInstanceForType() {
      return im.turms.server.common.access.client.dto.notification.TurmsNotification.getDefaultInstance();
    }

    @java.lang.Override
    public im.turms.server.common.access.client.dto.notification.TurmsNotification build() {
      im.turms.server.common.access.client.dto.notification.TurmsNotification result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public im.turms.server.common.access.client.dto.notification.TurmsNotification buildPartial() {
      im.turms.server.common.access.client.dto.notification.TurmsNotification result = new im.turms.server.common.access.client.dto.notification.TurmsNotification(this);
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        result.requestId_ = requestId_;
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        result.code_ = code_;
        to_bitField0_ |= 0x00000002;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        to_bitField0_ |= 0x00000004;
      }
      result.reason_ = reason_;
      if (dataBuilder_ == null) {
        result.data_ = data_;
      } else {
        result.data_ = dataBuilder_.build();
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.requesterId_ = requesterId_;
        to_bitField0_ |= 0x00000008;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.closeStatus_ = closeStatus_;
        to_bitField0_ |= 0x00000010;
      }
      if (relayedRequestBuilder_ == null) {
        result.relayedRequest_ = relayedRequest_;
      } else {
        result.relayedRequest_ = relayedRequestBuilder_.build();
      }
      result.bitField0_ = to_bitField0_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }
    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.setField(field, value);
    }
    @java.lang.Override
    public Builder clearField(
        com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }
    @java.lang.Override
    public Builder clearOneof(
        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }
    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }
    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }
    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof im.turms.server.common.access.client.dto.notification.TurmsNotification) {
        return mergeFrom((im.turms.server.common.access.client.dto.notification.TurmsNotification)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(im.turms.server.common.access.client.dto.notification.TurmsNotification other) {
      if (other == im.turms.server.common.access.client.dto.notification.TurmsNotification.getDefaultInstance()) return this;
      if (other.hasRequestId()) {
        setRequestId(other.getRequestId());
      }
      if (other.hasCode()) {
        setCode(other.getCode());
      }
      if (other.hasReason()) {
        bitField0_ |= 0x00000004;
        reason_ = other.reason_;
        onChanged();
      }
      if (other.hasData()) {
        mergeData(other.getData());
      }
      if (other.hasRequesterId()) {
        setRequesterId(other.getRequesterId());
      }
      if (other.hasCloseStatus()) {
        setCloseStatus(other.getCloseStatus());
      }
      if (other.hasRelayedRequest()) {
        mergeRelayedRequest(other.getRelayedRequest());
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      im.turms.server.common.access.client.dto.notification.TurmsNotification parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage = (im.turms.server.common.access.client.dto.notification.TurmsNotification) e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }
    private int bitField0_;

    private long requestId_ ;
    /**
     * <pre>
     * Response
     * request_id is used to tell the client that this notification is for the specific request
     * </pre>
     *
     * <code>optional int64 request_id = 1;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Response
     * request_id is used to tell the client that this notification is for the specific request
     * </pre>
     *
     * <code>optional int64 request_id = 1;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public long getRequestId() {
      return requestId_;
    }
    /**
     * <pre>
     * Response
     * request_id is used to tell the client that this notification is for the specific request
     * </pre>
     *
     * <code>optional int64 request_id = 1;</code>
     * @param value The requestId to set.
     * @return This builder for chaining.
     */
    public Builder setRequestId(long value) {
      bitField0_ |= 0x00000001;
      requestId_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Response
     * request_id is used to tell the client that this notification is for the specific request
     * </pre>
     *
     * <code>optional int64 request_id = 1;</code>
     * @return This builder for chaining.
     */
    public Builder clearRequestId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      requestId_ = 0L;
      onChanged();
      return this;
    }

    private int code_ ;
    /**
     * <code>optional int32 code = 2;</code>
     * @return Whether the code field is set.
     */
    @java.lang.Override
    public boolean hasCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 code = 2;</code>
     * @return The code.
     */
    @java.lang.Override
    public int getCode() {
      return code_;
    }
    /**
     * <code>optional int32 code = 2;</code>
     * @param value The code to set.
     * @return This builder for chaining.
     */
    public Builder setCode(int value) {
      bitField0_ |= 0x00000002;
      code_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>optional int32 code = 2;</code>
     * @return This builder for chaining.
     */
    public Builder clearCode() {
      bitField0_ = (bitField0_ & ~0x00000002);
      code_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object reason_ = "";
    /**
     * <code>optional string reason = 3;</code>
     * @return Whether the reason field is set.
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string reason = 3;</code>
     * @return The reason.
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        reason_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>optional string reason = 3;</code>
     * @return The bytes for reason.
     */
    public com.google.protobuf.ByteString
        getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>optional string reason = 3;</code>
     * @param value The reason to set.
     * @return This builder for chaining.
     */
    public Builder setReason(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
      reason_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>optional string reason = 3;</code>
     * @return This builder for chaining.
     */
    public Builder clearReason() {
      bitField0_ = (bitField0_ & ~0x00000004);
      reason_ = getDefaultInstance().getReason();
      onChanged();
      return this;
    }
    /**
     * <code>optional string reason = 3;</code>
     * @param value The bytes for reason to set.
     * @return This builder for chaining.
     */
    public Builder setReasonBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      bitField0_ |= 0x00000004;
      reason_ = value;
      onChanged();
      return this;
    }

    private im.turms.server.common.access.client.dto.notification.TurmsNotification.Data data_;
    private com.google.protobuf.SingleFieldBuilderV3<
        im.turms.server.common.access.client.dto.notification.TurmsNotification.Data, im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder, im.turms.server.common.access.client.dto.notification.TurmsNotification.DataOrBuilder> dataBuilder_;
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     * @return Whether the data field is set.
     */
    public boolean hasData() {
      return dataBuilder_ != null || data_ != null;
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     * @return The data.
     */
    public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data getData() {
      if (dataBuilder_ == null) {
        return data_ == null ? im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.getDefaultInstance() : data_;
      } else {
        return dataBuilder_.getMessage();
      }
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     */
    public Builder setData(im.turms.server.common.access.client.dto.notification.TurmsNotification.Data value) {
      if (dataBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        data_ = value;
        onChanged();
      } else {
        dataBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     */
    public Builder setData(
        im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder builderForValue) {
      if (dataBuilder_ == null) {
        data_ = builderForValue.build();
        onChanged();
      } else {
        dataBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     */
    public Builder mergeData(im.turms.server.common.access.client.dto.notification.TurmsNotification.Data value) {
      if (dataBuilder_ == null) {
        if (data_ != null) {
          data_ =
            im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.newBuilder(data_).mergeFrom(value).buildPartial();
        } else {
          data_ = value;
        }
        onChanged();
      } else {
        dataBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     */
    public Builder clearData() {
      if (dataBuilder_ == null) {
        data_ = null;
        onChanged();
      } else {
        data_ = null;
        dataBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     */
    public im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder getDataBuilder() {
      
      onChanged();
      return getDataFieldBuilder().getBuilder();
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     */
    public im.turms.server.common.access.client.dto.notification.TurmsNotification.DataOrBuilder getDataOrBuilder() {
      if (dataBuilder_ != null) {
        return dataBuilder_.getMessageOrBuilder();
      } else {
        return data_ == null ?
            im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.getDefaultInstance() : data_;
      }
    }
    /**
     * <code>.im.turms.proto.TurmsNotification.Data data = 4;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        im.turms.server.common.access.client.dto.notification.TurmsNotification.Data, im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder, im.turms.server.common.access.client.dto.notification.TurmsNotification.DataOrBuilder> 
        getDataFieldBuilder() {
      if (dataBuilder_ == null) {
        dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            im.turms.server.common.access.client.dto.notification.TurmsNotification.Data, im.turms.server.common.access.client.dto.notification.TurmsNotification.Data.Builder, im.turms.server.common.access.client.dto.notification.TurmsNotification.DataOrBuilder>(
                getData(),
                getParentForChildren(),
                isClean());
        data_ = null;
      }
      return dataBuilder_;
    }

    private long requesterId_ ;
    /**
     * <pre>
     * Notification
     * requester_id only exists when a requester triggers a notification to its recipients
     * Note: Do not move requester_id to TurmsRequest because it requires rebuilding
     * a new TurmsNotification when recipients need the requester_id.
     * </pre>
     *
     * <code>optional int64 requester_id = 5;</code>
     * @return Whether the requesterId field is set.
     */
    @java.lang.Override
    public boolean hasRequesterId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * Notification
     * requester_id only exists when a requester triggers a notification to its recipients
     * Note: Do not move requester_id to TurmsRequest because it requires rebuilding
     * a new TurmsNotification when recipients need the requester_id.
     * </pre>
     *
     * <code>optional int64 requester_id = 5;</code>
     * @return The requesterId.
     */
    @java.lang.Override
    public long getRequesterId() {
      return requesterId_;
    }
    /**
     * <pre>
     * Notification
     * requester_id only exists when a requester triggers a notification to its recipients
     * Note: Do not move requester_id to TurmsRequest because it requires rebuilding
     * a new TurmsNotification when recipients need the requester_id.
     * </pre>
     *
     * <code>optional int64 requester_id = 5;</code>
     * @param value The requesterId to set.
     * @return This builder for chaining.
     */
    public Builder setRequesterId(long value) {
      bitField0_ |= 0x00000008;
      requesterId_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Notification
     * requester_id only exists when a requester triggers a notification to its recipients
     * Note: Do not move requester_id to TurmsRequest because it requires rebuilding
     * a new TurmsNotification when recipients need the requester_id.
     * </pre>
     *
     * <code>optional int64 requester_id = 5;</code>
     * @return This builder for chaining.
     */
    public Builder clearRequesterId() {
      bitField0_ = (bitField0_ & ~0x00000008);
      requesterId_ = 0L;
      onChanged();
      return this;
    }

    private int closeStatus_ ;
    /**
     * <code>optional int32 close_status = 6;</code>
     * @return Whether the closeStatus field is set.
     */
    @java.lang.Override
    public boolean hasCloseStatus() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int32 close_status = 6;</code>
     * @return The closeStatus.
     */
    @java.lang.Override
    public int getCloseStatus() {
      return closeStatus_;
    }
    /**
     * <code>optional int32 close_status = 6;</code>
     * @param value The closeStatus to set.
     * @return This builder for chaining.
     */
    public Builder setCloseStatus(int value) {
      bitField0_ |= 0x00000010;
      closeStatus_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>optional int32 close_status = 6;</code>
     * @return This builder for chaining.
     */
    public Builder clearCloseStatus() {
      bitField0_ = (bitField0_ & ~0x00000010);
      closeStatus_ = 0;
      onChanged();
      return this;
    }

    private im.turms.server.common.access.client.dto.request.TurmsRequest relayedRequest_;
    private com.google.protobuf.SingleFieldBuilderV3<
        im.turms.server.common.access.client.dto.request.TurmsRequest, im.turms.server.common.access.client.dto.request.TurmsRequest.Builder, im.turms.server.common.access.client.dto.request.TurmsRequestOrBuilder> relayedRequestBuilder_;
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     * @return Whether the relayedRequest field is set.
     */
    public boolean hasRelayedRequest() {
      return relayedRequestBuilder_ != null || relayedRequest_ != null;
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     * @return The relayedRequest.
     */
    public im.turms.server.common.access.client.dto.request.TurmsRequest getRelayedRequest() {
      if (relayedRequestBuilder_ == null) {
        return relayedRequest_ == null ? im.turms.server.common.access.client.dto.request.TurmsRequest.getDefaultInstance() : relayedRequest_;
      } else {
        return relayedRequestBuilder_.getMessage();
      }
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     */
    public Builder setRelayedRequest(im.turms.server.common.access.client.dto.request.TurmsRequest value) {
      if (relayedRequestBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        relayedRequest_ = value;
        onChanged();
      } else {
        relayedRequestBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     */
    public Builder setRelayedRequest(
        im.turms.server.common.access.client.dto.request.TurmsRequest.Builder builderForValue) {
      if (relayedRequestBuilder_ == null) {
        relayedRequest_ = builderForValue.build();
        onChanged();
      } else {
        relayedRequestBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     */
    public Builder mergeRelayedRequest(im.turms.server.common.access.client.dto.request.TurmsRequest value) {
      if (relayedRequestBuilder_ == null) {
        if (relayedRequest_ != null) {
          relayedRequest_ =
            im.turms.server.common.access.client.dto.request.TurmsRequest.newBuilder(relayedRequest_).mergeFrom(value).buildPartial();
        } else {
          relayedRequest_ = value;
        }
        onChanged();
      } else {
        relayedRequestBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     */
    public Builder clearRelayedRequest() {
      if (relayedRequestBuilder_ == null) {
        relayedRequest_ = null;
        onChanged();
      } else {
        relayedRequest_ = null;
        relayedRequestBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     */
    public im.turms.server.common.access.client.dto.request.TurmsRequest.Builder getRelayedRequestBuilder() {
      
      onChanged();
      return getRelayedRequestFieldBuilder().getBuilder();
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     */
    public im.turms.server.common.access.client.dto.request.TurmsRequestOrBuilder getRelayedRequestOrBuilder() {
      if (relayedRequestBuilder_ != null) {
        return relayedRequestBuilder_.getMessageOrBuilder();
      } else {
        return relayedRequest_ == null ?
            im.turms.server.common.access.client.dto.request.TurmsRequest.getDefaultInstance() : relayedRequest_;
      }
    }
    /**
     * <code>.im.turms.proto.TurmsRequest relayed_request = 7;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        im.turms.server.common.access.client.dto.request.TurmsRequest, im.turms.server.common.access.client.dto.request.TurmsRequest.Builder, im.turms.server.common.access.client.dto.request.TurmsRequestOrBuilder> 
        getRelayedRequestFieldBuilder() {
      if (relayedRequestBuilder_ == null) {
        relayedRequestBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            im.turms.server.common.access.client.dto.request.TurmsRequest, im.turms.server.common.access.client.dto.request.TurmsRequest.Builder, im.turms.server.common.access.client.dto.request.TurmsRequestOrBuilder>(
                getRelayedRequest(),
                getParentForChildren(),
                isClean());
        relayedRequest_ = null;
      }
      return relayedRequestBuilder_;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }


    // @@protoc_insertion_point(builder_scope:im.turms.proto.TurmsNotification)
  }

  // @@protoc_insertion_point(class_scope:im.turms.proto.TurmsNotification)
  private static final im.turms.server.common.access.client.dto.notification.TurmsNotification DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new im.turms.server.common.access.client.dto.notification.TurmsNotification();
  }

  public static im.turms.server.common.access.client.dto.notification.TurmsNotification getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<TurmsNotification>
      PARSER = new com.google.protobuf.AbstractParser<TurmsNotification>() {
    @java.lang.Override
    public TurmsNotification parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return new TurmsNotification(input, extensionRegistry);
    }
  };

  public static com.google.protobuf.Parser<TurmsNotification> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<TurmsNotification> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public im.turms.server.common.access.client.dto.notification.TurmsNotification getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

